找到所有但跳过一个文件夹

时间:2012-08-09 04:25:06

标签: linux find skip

我有一个命令可以查看我的所有子文件夹中的文件,但我希望它从搜索中跳过一个文件夹,我不确定这样做的正确方法是什么:

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'

但它不起作用。

提前感谢您的帮助。

2 个答案:

答案 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*'