Linux下怎么删除某文件外的所有文件

飘落的烟灰0

飘落的烟灰0

2016-02-20 12:36

今天图老师小编给大家介绍下Linux下怎么删除某文件外的所有文件,平时喜欢Linux下怎么删除某文件外的所有文件的朋友赶紧收藏起来吧!记得点赞哦~

Linux下删除文件使用rm指令就可以完成了,那么要删除除了指定文件的其他文件又该使用哪个命令呢?下面图老师小编就大家介绍下删除指定文件以外的文件命令。

 Linux下怎么删除某文件外的所有文件

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

删除文件: rm file

删除文件夹: rm -rf dir

需要注意的是, rmdir 只能够删除 空文件夹。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

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

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命令删除其他文件:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

find 。/ -name ‘[^k][^e][^e][^p]*’ -exec rm -rf {} ; #删除keep以外的其他文件。

find 。/ -name ‘[^k][^e][^e][^p]*’ | xargs rm -rf #删除keep以外的其他文件。推荐!

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

上面就是Linux删除文件的方法介绍了,当你要删除指定文件之外的所有文件的话,上面有5种方法可以实现,选一个自己习惯的方法试试看看吧。

展开更多 50%)
分享

猜你喜欢

Linux下怎么删除某文件外的所有文件

电脑入门
Linux下怎么删除某文件外的所有文件

查找某目录下的所有文件

编程语言 网络编程
查找某目录下的所有文件

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VC删除文件夹下所有文件的代码

编程语言 网络编程
VC删除文件夹下所有文件的代码

ASP实现结构化列举并查看某路径下所有文件

ASP
ASP实现结构化列举并查看某路径下所有文件

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Linux下PDF文件嵌入LaTex所有字体的方法详解

电脑入门
Linux下PDF文件嵌入LaTex所有字体的方法详解

彻底删除Linux文件的方法汇总

电脑入门
彻底删除Linux文件的方法汇总

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

最详细的Linux压缩解压缩命令

最详细的Linux压缩解压缩命令

MAC下如何重命名文件

MAC下如何重命名文件
下拉加载更多内容 ↓