我想对目录执行 find 操作,但不包括其子目录。我在 Google 上找到了两个非常不同的示例,由于它们都没有尝试工作,所以我假设在 OSX 下情况有所不同,或者我做了一些奇怪的事情。
我想做:
find here/ -name '*.xxx' -BUTNOT here/there/ -exec stuff {} \;
使用我尝试过的示例,我要么得到错误,要么得到 0 个匹配,要么得到所有匹配。
我可能需要排除多个子目录。
答案1
不幸的是我现在没有可用的 OS X,但至少在 Linux 中这是可行的:
find . -name \*.xxx -o -path ./path/to/exclude -prune ...
要修剪多个目录,请重复整个模式-o -path ... -prune
:
find . -name \*.xxx -o -path ./path/to/exclude1 -prune -o -path ./path/to/exclude2 -prune ...