linux find 反转 查找没有被找到的结果

在linux下,有时候需要找一些文件,还有时候这些文件格式不够统一和规范,但是需要排除的那些文件却格式统一,就可以使用find命令的反转功能

一般用find查找文件的命令是:

find . -name "*.tar.*" -o -name "*.patch"

这个意思是,查找文件名里面包含.tar.字符OR.patch字符的文件。

 

现在要把这些文件排除,想grep/ack/ag都有一个叫-revert的功能,就是查找不是目标字符串的内容,find没有,但是它提供了一个更强大的!非命令。

find . \( \! -name "*.tar.*"  \)

这句话中()是代表(expr)使用表达式的意思,然后其中的!可以把结果取反过来。

find . \( \! \(  -name "*.tar.*"  -o  -name "*.patch" \) \)

这句也是同样的意思,不过当用了-o命令的时候,需要再加一层括号。

 

posted @ 2015-01-20 18:30  yantze  阅读(1785)  评论(0编辑  收藏  举报