inux反选删除文件

摘要:
在Linuxrm 1中删除指定文件以外的文件的方法摘要。在Linux中删除文件和文件夹的常见命令如下:删除文件:rmfile删除文件夹:rmrfdir注意,rmdir只能删除空文件夹。查找。/-名称“[^k][^e][^e][^p]*”| xargsrm rf#删除除保留以外的文件。我希望您将来可以通过以下方式使用此有用的命令:http://blog.sina.com.cn/s/blog_67e34ceb01014930.htmllinux删除其他文件http://zhidao.baidu.com/link?

最简单的方法是

# shopt -s extglob      (打开extglob模式)
# rm -fr !(file1)
 

如果是多个要排除的,可以这样:

# rm -rf !(file1|file2) 
inux反选删除文件第1张
Linuxrm删除指定文件外的其他文件方法汇总 一、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进程来处理。
关于find 执行命令的效率和借用xargs启动的命令效率的比较,详情请参考:http://www.linuxsir.org/main/?q=node/137
Linux文件查找命令find,xargs详述  http://www.linuxsir.org/main/?q=node/137 本文转载自:http://blog.sina.com.cn/s/blog_70ffb5c501011rrk.html

rm删除除去指定文件的剩余所有文件  (rm 反向删除)

zhou@zhou:~/LinuxC/file/test$ ls
1  23sdfwe 88888888  aabb ag   ghdda    mmm
2 3       aaaaaaaa abc  asdg  llllllll wwwww
zhou@zhou:~/LinuxC/file/test$

然后我想删除除了包含字符串aa外所有的文件,也就是想留下aabb,aaaaaaaa,这两个文件,其他的全部删除
下面是我的命令:

zhou@zhou:~/LinuxC/file/test$ rm `ls | grep -v"aa"`
zhou@zhou:~/LinuxC/file/test$ ls
aaaaaaaa  aabb
zhou@zhou:~/LinuxC/file/test$
所以了,成功了。
简单的解释一下那条命令吧:rm 删除后面指定的文件
`ls | grep -v "aa" ` 记得外面是反引号(反引号的位置就在标准键盘的数字1的左边),
ls:查看当前目录下所有的文件,使用grep命令过滤一下grep -v "aa" 就是找出字符串中不带“aa”的。

整体再顺一下:列出文件名不带“aa”串的文件,然后删除他们。OK。
其实说起来简单,当时我也做了好长时间,因为以前没怎么接触grep,因此一开始我想到的办法是使用正则表
达式,但是在做的过程中突然发现了grep使个不错的东西,因此就使用了。

上面的命令使删除带有“aa”串的文件,那如果我只想留下文件aa呢?很简单

zhou@zhou:~/LinuxC/file/test$rm `ls | grep -v"^aa$" `
在aa前面加上^,后面加上$表示结束符的意思,这个就是完全匹配了。
好了,就这么多。但愿以后能用到这个有用的命令
转自:http://blog.sina.com.cn/s/blog_67e34ceb01014930.html
linux 删除其他文件 http://zhidao.baidu.com/link?url=uvHfrb3kSnM_8p5ILhZyc39U0h3md-Ncrm3iaygeYTLU-zjthNBlqO674VulVGTnPiNcl2nj7wo5vn08N4481_ 求教 linux centos我想删除某目录中文件名不符合"*20100330*"这样规则的文件应该怎么删除?

假设目录名为myTest且为当前目录的下一级目录,使用如下命令即可:
cd ./myTest && rm `ls | grep -v '20100330'` && cd ..

进入myTest目录,删除文件后返回当前目录。

grep的-v参数表示反向选择。

一般使用rm删除文件的时候会有确认提示,如果不要确认,直接强制删除,可以使用rm的-f参数。

其他1条回答

find ./ -type f ! -name "*20100330*" -exec rm -rf {} ;
如何反向选择文件并删除

http://bbs.csdn.net/topics/390077765

案例:一个文件夹下我想删除 除了abc文件 之外的所有文件,命令怎么写(linux下)

find . -maxdepth 1 -type f -not -name 'abc' -exec rm '{}' ';'

ls | grep -v abc | xargs -i rm -rf {}

rm -f `ls | grep -v abc`
如果文件很多的情况下,不要用这种方法……
要用2楼的方法……

mv abc /tmp
rm *
mv /tmp/abc .

反向显示文件

使用ls命令仅仅显示当前目录不包括.的文件.

ls加grep过滤的方式:ls -al | grep -v '.'(ls --ignore=.* -al也可实现)。

在打开extglob模式下(缺省是打开的),ls也可以实现,而且更加灵活.

shopt -u extglob #关闭
shopt -s extglob #打开

ls -al !(*.*)
ls -al -d !(*.*)

免责声明:文章转载自《inux反选删除文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring框架系列(五)--Spring AOP以及实现用户登录权限控制文件系统FatFsR0.09a翻译(三):ff.h下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

(转)FreeBSD和LINUX新手命令

 1.登录和退出   登录时(当看到login:时)你必须是在系统安装时创建的用户或root超级用户. (在FreeBSD系统安装时就已经创建了root用户了 ,root用户遍历到系统的任何一个目录并且可以做任何事情,包括删除系统文件,所以一定要千万小心!)符号%和符号# 代表提示符(你的可能不一样),%表示普通用户,#表示超级用户root要退出系统(并且...

Redis学习-进阶下(四)

  前篇基于redis的高级功能,学习如何使用redis的事务,设置数据的有效期和对列表、集合等的排序,这一篇基于场景,学习redis的其他特性. 一、队列   在系统中往往有许多需要处理的工作,有的工作对时效性要求高,需要立即返回结果,有的对时效性不高,容许一定时间的延迟,比如后台日志、邮件发送。这些时效性不高的功能,可以把他们作为一个任务放在队列里,再...

嵌入式驱动开发之uboot---uboot 中的常见命令参数参数

Uboot相关命令介绍 bootm bootp cmp cp crc32 echo erase flinfo go minfo loadb loads mw 14mw 用指定的数据填充内存 15md 查看内存 16mm 内存修改地址自动递增 nfs nm 19nm 修改内存值 指定地址 printenv printenv 查看环境变量可以简写为pri...

Django 框架入门篇(安装与创建项目)

什么是Django框架? 官方定义:Django是一个高级Python Web框架,鼓励快速开发和简洁实用的设计。它由经验丰富的开发人员构建,可以解决大部分Web开发的麻烦,因此您可以专注于编写应用程序而无需重复造轮子。 Django is a high-level Python Web framework that encourages rapid de...

DDR3调试总结

本文为原创,转载请注明作者与出处 http://blog.csdn.net/hanfei_1/article/details/70546010        以前同是DDR3的无知少年,由于项目需求、工作需要,有幸深入研究DDR3,中间也确实历经各种盲目阶段,查询资料、建立工程、调试错误等等,如今对此不敢说是精通,也只能说是基本入门,写此文章的目的也无非是...

redis的pub/sub命令

Redis 发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系: 当有新消息通过 PUBLISH...