Linux 下rm + grep 命令删除除去指定文件的剩余所有文件

Linux 下rm + grep 命令删除除去指定文件的剩余所有文件上一篇 / 下一篇 2010-07-08 10:17:38 / 个人分类:liunx相关查看( 185 ) / 评论( 0 ) / 评分( 0 / 0 )今天下午有个任问我如何删除一个目录下的除了想要的文件之外的所有文件。我想了想grep和rm配合一下不正好么。于是经过查阅资料得出了一条命令:过程如下。首先在一个目录下:zhou@zhou:~/LinuxC/file/test$ ls1 23sdfwe 88888888 aabb ag ghdda mmm2 3 aaaaaaaa abc asdg llllllll wwwwwzhou@zhou:~/LinuxC/file/test$然后我想删除除了包含字符串aa外所有的文件,也就是想留下aabb,aaaaaaaa,这两个文件,其他的全部删除下面是我的命令:zhou@zhou:~/LinuxC/file/test$ rm `ls | grep -v "aa"`然后查看一下:zhou@zhou:~/LinuxC/file/test$ lsaaaaaaaa aabbzhou@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前面加上^,后面加上$表示结束符的意思,这个就是完全匹配了。好了,就这么多。但愿以后能用到这个有用的命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值