删除一个文件_讨论帖

丘比特惩罚陆
全栈领域新星创作者
2023-05-22 08:47:53

在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/

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

$ rsync -avz --delete dirA/ dirB/

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

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

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

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

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

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

  1. 将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

...全文
6 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
1,项目功能:开发一个在线学习平台,一共3个身份:管理员,老师和学生!   ①管理员功能:登录后可以添加学生信息,管理所有学生信息,添加单个老师信息,也可以批量导入很多老师信息,管理所有老师信息,添加和管理学院信息,发布课程信息,管理所有课程,查看回复话题讨论信息,发布网站公告,管理网站公告信息!    ②教师功能:上传课程视频信息,查询管理所有教学视频,上课课程文档课件信息,查询管理所有课件文档,新增讨论话题信息,查询编辑管理所有话题信息,按照课程发布作业信息,可以向某次作业中加入题目信息,也可以删除题目信息,每个题目带有分数值,老师可以修改个人信息。    ③学生功能:查询所有课程信息,在线课程视频信息查询,可以在线观看某个视频教学,查询和下载所有的课件文件,查看所有话题讨论信息,可以回复话题,也可以查看话题的回复信息,可以查询网站公告信息,查询老师布置的作业,进入作业题目列表做题,提交可以查看完成作业的分数,可以修改个人信息。2,涉及技术:SSM框架(Spring,SpringMVC,MyBatis),MySQL数据库,Maven,Tomcat3,开发环境:IDEA4,讲解方式:从环境安装,项目搭建,以及项目介绍等进行讲解5,包含资料:项目源码(含数据库文件),环境安装包,项目文档。

9

社区成员

发帖
与我相关
我的任务
社区管理员
  • community_804
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧