Linux入门删除一个文件

简介: Linux入门删除一个文件

在LINUX中,经常要删除文件,大多时候使用rm命令就足以应付了,有的时候需要用-f,强制删除,碰到有子目录的时候,需要加-r参数,也就是说,不考虑安全问题,rm -rf filename就可以解决绝大部分问题.先看下rm的一般用法:

网络异常,图片无法展示
|

也就是说,大多情况下:

方法一: rm file       # 直接删除

方法二: rm -i file     # 删前提示

方法三: rm -f file     # 强制删除

方法四: rm -rf /dir    # 递归删除

但是,经常在删除文件时会碰到Device or Resource is busy的情况,这个时候尝试用下面的方法:

方法五: 使用ps和kill命令查看并删除相应的进程,时候再执行rm删除操作

方法六: 使用lsof命令查看使用该文件并用kill删除,再执行rm操作

方法七: 使用fuser -kvm /mnt/test命令,再执行rm操作

    -k参数: 缩写kill

    -v参数: 详细输出

    -m参数: 表面指定的路径为挂载点

方法八: 使用find命令结合-exec命令来删除
$ find /tmp -type f -exec rm -rf {} \;
方法九: 使用find命令结合xargs命令来删除
$ find /tmp -type f | xargs rm -rf


增量删除】:

$ mkdir {dirA,dirB}              # 创建测试目录

$ touch dirA/{A1,A2,A3}     # dirA创建三个文件A1,A2,A3

$ touch dirB/{B1,B2,B3}      # dirA创建三个文件B1,B2,B3

目录结构如下:

网络异常,图片无法展示
|

1) 将dirA的所有文件同步到dirB内,并保留文件的属主,属组,文件权限等信息:

$ rsync -avz dirA/ dirB/

网络异常,图片无法展示
|

2) 将dirA的所有文件同步到dirB内,并删除dirB内多余的文件

$ rsync -avz --delete dirA/ dirB/

网络异常,图片无法展示
|

3) 将dirA的所有文件同步到dirB,但是在dirB内除了B3这个文件不删之外,其他的都删除

$ rsync -avz --delete --exclude='B3' dirA/ dirB/

网络异常,图片无法展示
|

4) 将dirA目录内的A1.txt和A2.txt不同步到dirB目录内

$ rsync -avz  --exclude='A1' --exclude='A2' dirA/ dirB/

网络异常,图片无法展示
|

5) 将dirA目录内的A1和A2不同步到dirB目录内,并且在dirB目录内删除多余的文件

$ rsync -avz --exclude='A1' --exclude='A2'  --delete dirA/ dirB/

网络异常,图片无法展示
|

6) 将dirA目录内的A1和A2不同步到dirB目录内,并且在dirB目录内删除多余的文件,同时,如果dirB内有A2和A1这两个被排除同步的文件,仍然将其删除

$ rsync -avz --exclude='A1' --exclude='A2'  --delete-excluded dirA/ dirB/

网络异常,图片无法展示
|


海量删除】:

有时候文件太多,执行rm –rf file* 会报错,进行不下去,这个时候,同样要考虑到rsync同步删除操作,且高效快速,其思路,建一个空目录作为中转,再删除:

rsync --delete-before -avH --progress --stats /tmp/   /yourdir/

 

-a:        归档模式

-v:        显示全部过程

-H:        保持硬链接文件

-progress    在传输时显示传输过程


这几种方法的使用,几乎可以解决删除操作中碰到的任何问题,但有几点必须注意的问题:

1). 有挂载点的情况下,一定要执行umount操作

2). 不要删除目录的下,执行删除的操作,很愚蠢,不是嘛?

3). 如果执行rm -rf /dir1/dir2/dir3/*.*删除不掉的话,尝试删除其父目录rm -rf /dir1/dir2


目录
打赏
0
0
0
0
0
分享
相关文章
|
10天前
|
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
55 19
|
25天前
|
Linux 常用文件查看命令
`cat` 命令用于连接文件并打印到标准输出,适用于快速查看和合并文本文件内容。常用示例包括:`cat file1.txt` 查看单个文件,`cat file1.txt file2.txt` 合并多个文件,`cat > filename` 创建新文件,`cat >> filename` 追加内容。`more` 和 `less` 命令用于分页查看文件,`tail` 命令则用于查看文件末尾内容,支持实时追踪日志更新,如 `tail -f file.log`。
47 5
Linux 常用文件查看命令
|
4天前
|
如何创建Linux交换文件?Linux交换文件最新创建方法
Swap是Linux中的虚拟内存空间,用于在物理内存不足时将非活动进程移至磁盘,从而优化活动进程的性能。通过创建交换文件(如1GB),可灵活调整交换空间而无需重新分区。步骤包括:使用`fallocate`或`dd`创建文件、设置权限 (`chmod 600`)、格式化 (`mkswap`)、启用交换 (`swapon`)、修改`/etc/fstab`以持久化配置,以及调整`vm.swappiness`值(默认60,建议从10开始)来平衡内存与交换的使用。最后通过`swapon -s`检查状态并重启生效。此方法适用于VPS和专用服务器,需以root用户操作。
18 2
Linux|Transfer.sh 轻松实现文件共享
Linux|Transfer.sh 轻松实现文件共享
39 2
Linux|Transfer.sh 轻松实现文件共享
【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件
本文详细介绍了Linux中的进程IO与系统调用,包括 `open`、`write`、`read`和 `close`函数及其用法,解释了文件描述符(fd)的概念,并深入探讨了Linux中的“一切皆文件”思想。这种设计极大地简化了系统编程,使得处理不同类型的IO设备变得更加一致和简单。通过本文的学习,您应该能够更好地理解和应用Linux中的进程IO操作,提高系统编程的效率和能力。
103 34
linux怎么把文件传到docker里面
在现代应用开发中,Docker作为流行的虚拟化工具,广泛应用于微服务架构。文件传输到Docker容器是常见需求。常用方法包括:1) `docker cp`命令直接复制文件;2) 使用`-v`选项挂载宿主机目录,实现数据持久化和实时同步;3) 通过SCP/FTP协议传输文件;4) 在Dockerfile中构建镜像时添加文件。选择合适的方法并确保网络安全是关键。
137 1
|
2月前
|
Linux文件与目录的日常
目录的切换 一般使用(”pwd“)显示当前所在的目录 比如:当前目录是在home下面的,与用户名相同的文件夹,可以使用(”cd“)命令来切换目录; 进入下载目录(”cd home/a/下载“)这种从给目录开头的一长串路经”叫做绝对路径“; 进入图片目录(”cd .. /图片/“)".."代表当前路径的上级路径,相对于当前的目录而言的”叫做相对路径“,(”.“)代表当前路径; 如果,想快速切换,上一个所在目录可以(”cd - / cd..“); 如果,想快速切换,追原始的目录可以(”cd --“); 查看目录及文件
50 14
|
2月前
|
Linux新手入门手册
在Linux或类Unix系统中,掌握一系列基础命令和快捷键是提升工作效率的关键。这些工具和技巧不仅能帮助用户更高效地管理系统,还能在日常使用中带来极大的便利。以下是对这些基础操作与快捷键的详细解析大全。
48 9
|
2月前
|
Linux 将所有文件和目录名重命名为小写
Linux 将所有文件和目录名重命名为小写
45 3
|
4月前
|
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
485 14