如何找到除.git目录下的目录以外的所有目录?

时间:2013-12-18 13:04:05

标签: linux find

在我的git存储库中,我在根目录下有一个小目录结构,在.git目录下有一个非常大的目录结构。我想使用find命令获取$(REPO_DIR)下所有目录的列表,但不包括$(REPO_DIR)/.git下的任何目录(包括)。我试过像

这样的东西
find $(REPO_DIR) -type d ! -name ".git"

find $(REPO_DIR) -wholename ".git" -prune -type d

但遗憾的是没有人按预期工作,有什么建议吗?

2 个答案:

答案 0 :(得分:2)

尝试:

 find . -type d -not -iwholename '*.git*'

或:

find . -type d  -not -path './.git*'

答案 1 :(得分:0)

作为替代方案,如果您使用bash,则可以启用extglob模式。

shopt -s extglob

这将允许您(从$(REPO_DIR)内):

find !(.git) -type d

有关详细信息,请参阅此答案:https://stackoverflow.com/a/217017/24