Linux 下rm+grep删除除去指定文件的剩余所有文件
2014-10-12 12:50
375 查看
例如: 删除当前文件夹下 .c和 .h 文件以外的文件
rm -f `ls ./ | egrep -v "(.c$|.h$)"`
1. ls 列出所有文件;
2. egrep -v 查找所有不包含 .c和 .h 的文件; .c$ —— 以.c 结尾的文件
3. rm -f 强制删除符合条件的文件
egrep —— 查询 多个 关键字;
除了错误消息和使用消息不同以及 -s 标志的功能不同之外, egrep
命令与 grep 命令带 -E 标志是一样的。
http://blog.chinaunix.net/uid-22556372-id-1773426.html
今天下午有个任问我如何删除一个目录下的除了想要的文件之外的所有文件。我想了想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"`
grep就是在文件中搜索包含指定字符串的行。
grep加了“-v” 选项就是反一下,找到文件中不包含指定字符串的行。
然后查看一下:
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前面加上^,后面加上$表示结束符的意思,这个就是完全匹配了。
好了,就这么多。但愿以后能用到这个有用的命令
rm -f `ls ./ | egrep -v "(.c$|.h$)"`
1. ls 列出所有文件;
2. egrep -v 查找所有不包含 .c和 .h 的文件; .c$ —— 以.c 结尾的文件
3. rm -f 强制删除符合条件的文件
egrep —— 查询 多个 关键字;
除了错误消息和使用消息不同以及 -s 标志的功能不同之外, egrep
命令与 grep 命令带 -E 标志是一样的。
http://blog.chinaunix.net/uid-22556372-id-1773426.html
今天下午有个任问我如何删除一个目录下的除了想要的文件之外的所有文件。我想了想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"`
grep就是在文件中搜索包含指定字符串的行。
grep加了“-v” 选项就是反一下,找到文件中不包含指定字符串的行。
然后查看一下:
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删除除去指定文件的剩余所有文件
- Linux 下rm + grep 命令删除除去指定文件的剩余所有文件
- 【Linux】linux中删除指定文件外所有其他文件(夹)的问题
- linux删除录下的所有文件仅仅保留一个指定文件
- linux面试题:删除一个目录下的所有文件,但保留一个指定文件
- linux 下pyhton 删除指定目录下所有的重复内容的文件
- linux下递归删除目录下所有指定类型文件
- Linux下面删除指定目录下非指定文件的所有文件
- Linux下如何遍历指定目录下的所有文件并删除指定天数之前创建的文件
- linux 删除所有文件夹下指定文件名的文件
- linux下递归删除目录下所有指定的文件
- Linux下如何遍历指定目录下的所有文件并删除指定天数之前创建的文件
- linux中删除一个目录下的所有文件,但保留一个指定文件
- linux 删除目录下所有指定文件
- linux下使用c语言删除指定目录下所有文件
- linux下使用c语言删除指定目录下所有文件
- linux面试题:删除一个目录下的所有文件,但保留一个指定文件
- Linux或者MAC下查找指定目录下的所有指定名字的文件并删除的命令
- linux命令---删除一个目录下的所有文件,但保留一个指定文件
- linux面试题:删除一个目录下的所有文件,但保留一个指定文件