使用“find”命令排除文件夹

使用“find”命令排除文件夹

find在 Mac 上使用命令搜索名为 的文件夹test1。现在test1文件夹也可能出现在.Trash文件夹中。如何排除该.Trash文件夹,使其不出现在搜索结果中,或者基本上排除任何我希望排除的文件夹?

$ find $HOME  -name test1 -type d
/Users/theuser/.Trash/test1
/Users/theuser/test1 
/Users/theuser/Downloads/test1 

我希望结果公正

/Users/theuser/test1
/Users/theuser/Downloads/test1 

我用了grep

find $HOME  -name test1 -type d | grep -v '.Trash' 

过滤掉.Trash结果,但我感兴趣的是知道find单独使用是否能达到相同的结果。

答案1

find $HOME -path  $HOME/.Trash -prune -o -name test1 -type d -print

通过明确使用,-print您可以避免错误打印.Trash

答案2

使用-prune主要:

find $HOME -name .Trash -prune -o -name test1 -type d

编辑:

这将在输出中包含 .Trash。要修复此问题:

find $HOME -name .Trash -prune -o \( -name test -type d -print \)

相关内容