0

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

find -name '*.avi' -o -name '*.mkv' -o -name '*.mp4' -o -name '*.vob'

我希望它不查看文件夹名称:安全

我试过:

find -name '*.avi' -o -name '*.mkv' -o -name '*.mp4' -o -name '*.vob' --skip 'secure'

但它不起作用。

提前感谢您的帮助。

4

2 回答 2

6

GNU find 中没有 --skip 参数。-path但是你可以使用and-prune表达式做你想做的事。语法有点奇怪:您将-path ./secure -prune其用作一个术语,然后将其与表达式的其余部分进行 OR。所以在你的情况下:

find . -name '*.avi' -o [...] -o -path ./secure -prune

请注意,这仍将返回./secure结果中的目录,但其中没有任何内容。

于 2012-08-09T04:47:15.240 回答
1

下面的呢?

find \( -name '*.avi' -o -name '*.mkv' -o -name '*.mp4' -o -name '*.vob' \) -a -not -path './secure*'
于 2012-08-09T04:35:34.680 回答