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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Linux 可以使用 "rm" 命令删除文件。 使用方法为: rm [文件名] 。 如果要删除多个文件,可以连续输入多个文件名,如 rm 文件1 文件2 文件3 。 如果要删除一个文件夹,可以使用 rm -r [文件夹名] 。 请注意,删除文件后将无法恢复,请谨慎操作。 ### 回答2: 在Linux,要删除文件,可以使用命令的"rm"命令。以下是删除文件的几种常用方式: 1. 删除单个文件:最基本的用法是在命令输入"rm 文件名",如"rm file.txt"。这将会永久删除指定的文件。 2. 删除多个文件:可以使用通配符来删除多个文件,如"rm *.txt",这将删除所有以".txt"结尾的文件。 3. 强制删除文件:有些文件可能受到保护,无法直接删除。要强制删除这些文件,可以使用"rm -f"命令,如"rm -f protectedFile.txt"。 4. 交互删除文件:为了避免误删除,可以使用"rm -i"命令删除时会询问是否确定删除,如"rm -i file.txt"。 5. 删除目录及其内容:要删除一个目录及其内部的所有文件和子目录,可以使用"rm -r"命令,如"rm -r directory"。需要注意的是,该操作是不可逆的,请谨慎使用。 6. 删除空目录:要删除一个空目录,可以使用"rmdir"命令,如"rmdir emptyDirectory"。 删除文件时,请务必谨慎操作,避免误删除重要文件。可以在删除前使用"ls"命令查看要删除文件列表,确保没有误操作。另外,删除文件是无法恢复的,所以使用删除命令之前,最好备份重要文件。 ### 回答3: 在Linux,我们可以使用命令行工具来删除文件。常用的删除命令是rm命令。 要删除一个文件,我们可以使用以下命令格式: rm 文件名 例如,如果我们想要删除一个名为"example.txt"的文件,我们可以输入以下命令: rm example.txt 如果文件存在且没有被锁定,它将被永久删除并无法恢复。如果要删除多个文件,可以将它们的文件名写在命令间用空格隔开。 在使用rm命令删除文件时,可能会遇到一些问题。例如,如果文件被其他进程占用或者没有足够的权限进行删除系统可能会提示错误消息。有时我们可能希望删除整个目录及其所有内容,可以使用rm命令的-r选项。 总之,在Linux删除文件是一项相对简单的任务,但在执行删除操作时请务必谨慎,以免意外删除了重要文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值