问题#1:
在当前目录下查找不在 .svn 目录中的可执行文件。
$ find . -path "*.svn*" -prune -o -type f -executable -print
注意:-print 必须放到最后;-o 表示逻辑运算 or;即如果 -path 后的模式匹配成功,则执行。 -prune 表示忽略该目录;否则(-o)就执行 -type f -executable -print。
问题#2:
在当前目录下查找没有扩展名的文件
$ find . ! -name "*.*" -type f
问题#3:
在当前目录下查找即不在 man 目录下也不在 doc 目录下的所有无扩展名文件
$ find . \( -path "*man*" -o -path "*doc*" \) -prune -o -type f ! -name "*.*" -print
问题#4:
查找所有不在 .svn 目录下的文件
$ find
! -path "*.svn*" -type f
注意:-path "*.svn*" 可解释为路径名称满足表达式“*.svn*”的所有目录;
! -path "*.svn*" 可解释为路径名称不满足表达式“*.svn*”的所有目录。
此方法比之前的方法更简练,效果一样。