如何排除./。 shell脚本搜索的目录?

时间:2011-08-05 22:30:32

标签: macos shell search

我正在尝试在目录/ Users /中搜索超过X x像素的所有图像文件(这是Mac OS,是的,我知道这是'危险'搜索。)

int main( ){
  FILE *pf;
   pf = popen("cd ~/ ; find . -type f '!' '(' -path ".*" ')' -print0 | xargs -0 file | grep 'image data'","r"); 
 }

这会产生错误find: ./.fseventsd: Permission denied我需要跳过以 .开头的任何目录,但似乎无法使用上述! ( -path ".*" )命令使其工作。

有很多关于如何跳过文件的信息;似乎找不到任何关于目录

2 个答案:

答案 0 :(得分:0)

您希望执行( -type d -name '.*' -prune ) -or ( $EXP -print )之类的操作,其中$EXP是表达式的其余部分。这将修剪任何名称与“。*”匹配的目录,然后它将表达式应用于其他所有内容。最后print的存在意味着与表达式的其余部分进行AND运算,此处用于防止修剪目录的打印。

答案 1 :(得分:0)

-path。只匹配'。'所以试试

find . -type f '!' '(' -path "./.[a-z]*" ')'