今天下午有个任问我如何删除一个目录下的除了想要的文件之外的所有文件。我想了想grep和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前面加上^,后面加上$表示结束符的意思,这个就是完全匹配了。
好了,就这么多。但愿以后能用到这个有用的命令
Linux 下rm+grep删除除去指定文件的剩余所有文件大屏查看
					发布于:2015年12月24日
					
					已被阅读次
				
			- 最新发布
 - linux下svn提交忽略某些文件... (215)
 - 使用批处理来批量更新、提交SVN... (185)
 - linux查看目录文件大小命令 (198)
 - linux tar打包压缩排除某个... (173)
 - Linux tar压缩和解压 (236)
 - SVN子命令add用法浅析 (171)
 
- 热门博文
 - 网友FBI探案:马蓉iPad惊人发现... (43392)
 - 霍金携手俄罗斯富豪耗资1亿美元寻找外... (4795)
 - 如何才能查看PHP内置函数源代码... (1250)
 - 微信支付开发当前URL未注册的解决方... (624)
 - 《谁为爱情买单》中的经典面试 ... (488)
 - 让虚拟主机也用上SVN:适用于个人的... (433)
 
- 精华博文
 - [推荐]Centos7 安装配置 SVN (202)
 - easyswoole框架安装 (213)
 - php开启pecl的支持(推荐) (204)
 - 1-10个恋爱表现:男朋友爱你程度到... (206)
 - 女生喜欢你的10个程度,到第六个就可... (181)
 - Eclipse 没有Server选项... (257)
 
- 友情链接
 - 我来忙 (110)