我只想列出当前路径上不在.git /目录内的目录。
我正在尝试:
find . -path "**/.git" -prune -o -print -type d
.git目录不包括在内,但该代码段也列出了文件。但这不应该像我指定的那样-type d
。如何使该find
实用程序像我描述的那样运行?
您以前使用-print
过-type d
,所以请find
打印所有不满足第一个表达式的内容。
您想交换它们:
find . -path '*/.git' -prune -o -type d -print
或仅使用谓词,因此您可以省略-print
:
find . ! \( -path '*/.git' -o -path '*/.git/*' \) -type d
还要注意,您只需要使用一个星号*/.git
,双星号**
对find
模式匹配没有特殊含义。您可以使用-name
代替-path
:
find . -name .git -prune -o -type d -print
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句