首页 > 系统相关 >Linux rm 删除指定文件外的其他文件 方法汇总

Linux rm 删除指定文件外的其他文件 方法汇总

时间:2023-03-24 19:34:08浏览次数:38  
标签:文件 删除 keep 文件夹 Linux rm find


一、Linux下删除文件和文件夹常用命令如下:



rm file #删除文件 rm -rf dir #删除文件夹 #需要注意的是, rmdir 只能够删除 空文件夹 。



 
二、删除制定文件(夹)之外的所有文件呢?

1、方法1,比较麻烦的做法是:
 复制需要保留的文件到其他文件夹,然后将该目录删除, 然后将需要保留的移动 回来。



mv keep ../ #保留文件(夹) keep rm -rf * #删除当前文件夹里的所有文件 mv ../keep ./ #将原来的东西移动回来



 
2、方法2,需要在当前文件夹中进行:



rm -rf !(keep) #删除keep文件之外的所有文件 rm -rf !(keep1 | keep2) #删除keep1和keep2文件之外的所有文件



 
3、方法3,当前文件夹中结合使用grep和xargs来处理文件名:



ls | grep -v keep | xargs rm #删除keep文件之外的所有文件



 
说明: ls先得到当前的所有文件和文件夹的名字, grep -v keep,进行grep正则匹配查找keep,-v参数决定了结果为匹配之外的结果,也就是的到了keep之外的所有文件名,然后 xargs用于从 标准输入获得参数 并且传递给后面的命令,这里使用的命令是 rm,然后由rm删除前面选择的文件。
好处:使用了grep来正则表达式来匹配文件名字,可以一次保留多个文件,从而进行更加准确的处理。

4、方法4,使用find命令代替ls,改进方法3从而能够处理制定文件夹的文件:



find ./test/ | grep -v keep | xargs rm #删除当前test文件夹中keep文件之外的所有文件



 
说明,用grep而不用find -name选取名字,因为find选取名字时比较麻烦,对正则表达式支持不够,无法排除指定文件名。

5、方法5,直接使用find命令删除其他文件:



find ./ -name '[^k][^e][^e][^p]*' -exec rm -rf {} \; #删除keep以外的其他文件。 find ./ -name '[^k][^e][^e][^p]*' | xargs rm -rf #删除keep以外的其他文件。推荐!



 
说明:上面第二行的代码效率高些,原因在于删除多个文件时 -exec会启动多个进程来处理,而xargs会启动一个rm进程来处理。

标签:文件,删除,keep,文件夹,Linux,rm,find
From: https://blog.51cto.com/u_8895844/6147981

相关文章

  • Go Xorm简单使用
    官网相关文档https://xorm.io/zh/docs/chapter-01/1.engine/https://gitea.com/xorm/xorm/src/branch/master/README_CN.mdxorm是一个简单而强大的Go语言ORM库.通过......
  • OpenHarmony关系型数据库详解[1]
    1概述关系型数据库(RelationalDatabase,以下简称RDB)是一种基于关系模型来管理数据的数据库,是在SQLite基础上提供一套完整的对本地数据库进行管理的机制,为开发者提供无需......
  • c++ 从字符串到文件读写
    学习C++的输入输出,比起java来有种空虚的感觉,不会就这么少吧!转码也没见到!java是跨平台语言,之所以跨平台是因为java语言本身就带着一个平台,java运行在虚拟机之上;灵活是以......
  • Linux shell set command All In One
    LinuxshellsetcommandAllInOneerros❌unbound-variable#$1:unboundvariableif(($1))thenecho$1#arg=$1#tsGenerator$arg#tsGenerator......
  • win32api之文件系统管理(七)
    什么是文件系统文件系统是一种用于管理计算机存储设备上文件和目录的机制。文件系统为文件和目录分配磁盘空间,管理文件和目录的存储和检索,以及提供对它们的访问和共享,以下......
  • Winform中使用HttpClient(设置最大超时响应时间)调用接口并做业务处理时界面卡住,使用a
    场景Winform中怎样使用HttpClient调用http的get和post接口并将接口返回json数据解析为实体类:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/124157296参......
  • 如何在EasyCVR平台将指定时间的录像转成MP4文件?
    EasyCVR平台可支持多协议、多类型设备接入,包括国标GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK、海康Ehome等,近期我们又拓展了更多SDK接入,包括华为SDK、宇视SDK、萤石SDK......
  • root Operation not permitted
    问题:  我从虚拟机拷贝文件夹到u盘却出现了这个问题。  可能是这个文件夹没有x权限,于是我准备把源文件夹以及要目的文件夹的权限全改了。   ......
  • application/x-www-form-urlencoded与application/json区别以及遇到的坑
    场景在Form元素的语法中,EncType表明提交数据的格式用Enctype属性指定将数据回发到服务器时浏览器使用的编码类型。 application/x-www-form-urlencoded:窗体数据被编码为......
  • MyBatisPlus插件扩展_PerformanceInterceptor性能分析插件的使用
    简介性能分析拦截器,用于输出每条SQL语句及其执行时间参数:maxTimeSQL执行最大时长,超过自动停止运行,有助于发现问题。参数:formatSQLSQL是否格式化,默认false。实现来到......