我正在尝试在目录/ 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 ".*" )
命令使其工作。
有很多关于如何跳过文件的信息;似乎找不到任何关于目录。
答案 0 :(得分:0)
您希望执行( -type d -name '.*' -prune ) -or ( $EXP -print )
之类的操作,其中$EXP
是表达式的其余部分。这将修剪任何名称与“。*”匹配的目录,然后它将表达式应用于其他所有内容。最后print
的存在意味着与表达式的其余部分进行AND运算,此处用于防止修剪目录的打印。
答案 1 :(得分:0)
-path。只匹配'。'所以试试
find . -type f '!' '(' -path "./.[a-z]*" ')'