我有一个命令可以查看我的所有子文件夹中的文件,但我希望它从搜索中跳过一个文件夹,我不确定这样做的正确方法是什么:
find -name '*.avi' -o -name '*.mkv' -o -name '*.mp4' -o -name '*.vob'
我希望它不要查看文件夹名称:secure
我试过了:
find -name '*.avi' -o -name '*.mkv' -o -name '*.mp4' -o -name '*.vob' --skip 'secure'
但它不起作用。
提前感谢您的帮助。
答案 0 :(得分:6)
GNU find中没有--skip参数。但您可以使用-path
和-prune
表达式执行所需操作。语法有点奇怪:您使用-path ./secure -prune
作为术语,然后将OR与表达式的其余部分进行OR运算。所以在你的情况下:
find . -name '*.avi' -o [...] -o -path ./secure -prune
请注意,这仍然会在结果中返回目录./secure
,但内部没有任何内容。
答案 1 :(得分:1)
以下情况如何?
find \( -name '*.avi' -o -name '*.mkv' -o -name '*.mp4' -o -name '*.vob' \) -a -not -path './secure*'