我想在我的工作目录使用此命令find命令:列表中的每个目录和子目录,除了git的或.hg目录及子目录
find . -type d \(! -name .git -prune \) -o \(! -name .hg -prune \)
似乎不工作?
删除修剪只会排除.git
或.hg
目录,而不是他们的子目录
我想在我的工作目录使用此命令find命令:列表中的每个目录和子目录,除了git的或.hg目录及子目录
find . -type d \(! -name .git -prune \) -o \(! -name .hg -prune \)
似乎不工作?
删除修剪只会排除.git
或.hg
目录,而不是他们的子目录
我的回答是基本相同@ 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?
支持同胞!upvote了解详情谢谢! – est
find . \(-name .git -o -name .hg \) -prune -o -type d -print
你可以试试'树-d'。 – pktangyue
@pktangyue很抱歉,我无权安装'tree' – est
为什么你需要权限?您可以将其安装在您的主目录中。 – Barmar