2013-01-11 35 views

回答

2

我的回答是基本相同@ Barmar的,我已经upvoted:

find . \(-name .git -o -name .hg \) -prune -o \(-type d -print \)

小有关此命令的说明可能对您有所帮助:

Here -o表示OR。当find找到与.git.hg匹配的文件名时,由于-prune选项而停止进一步搜索,并且计算结果为true,因此跳过其他-o分支(这是目录打印)。这就是为什么只有那些不包含.git.hg的目录才会出现。

您也可以参考这个问题上的SO:How to use '-prune' option of 'find' in sh?

+0

支持同胞!upvote了解详情谢谢! – est

4
find . \(-name .git -o -name .hg \) -prune -o -type d -print