我在 Linux (Ubuntu) 上,当我在做一个
find | less
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法从列表中排除 .hg 目录,但似乎不起作用。
find -type d \( ! -iname \.hg \)
find -type d \( ! -name \.hg \)
find -type d \( ! -iname .hg \)
Run Code Online (Sandbox Code Playgroud)
如何.directory
在查找命令中排除
fhe*_*eub 14
在对类似find
解决方案的研究中,我发现了有关How to use '-prune' option of 'find' in sh? 由劳伦斯·贡萨尔维斯。
你可以使用类似的东西:
find . \( -type d -name .hg -prune \) -o \( -type f -name "foo" -print \)
Run Code Online (Sandbox Code Playgroud)
或(没有名字)
find . \( -type d -name .hg -prune \) -o \( -type f -print \)
Run Code Online (Sandbox Code Playgroud)
的(转义)括号\(
和\)
组进行测试(type
和name
)和相应的操作(prune
和print
,分别地)在一起的左和右的OR( -o
)。
由于-o
优先级低于并列,因此您可以根据需要省略括号。许多find
实现还让您跳过最后的-print
.
find . -type d -name .hg -prune -o -type f -name "foo" -print
Run Code Online (Sandbox Code Playgroud)