作業ディレクトリでこのコマンドを使用しようとしました
find . -type d \( ! -name .git -prune \) -o \( ! -name .hg -prune \)
動作しないようですか?
.git
pruneを削除すると、.hg
ディレクトリのみが除外され、サブディレクトリは除外されません。
作業ディレクトリでこのコマンドを使用しようとしました
find . -type d \( ! -name .git -prune \) -o \( ! -name .hg -prune \)
動作しないようですか?
.git
pruneを削除すると、.hg
ディレクトリのみが除外され、サブディレクトリは除外されません。
find . \( -name .git -o -name .hg \) -prune -o -type d -print
私の答えは、私が賛成した@Barmarの答えと本質的に同じです。
find . \( -name .git -o -name .hg \) -prune -o \( -type d -print \)
このコマンドについての少しの説明があなたに役立つかもしれません:
ここで-o
意味しOR
ます。またはにfind
一致するファイルの名前が見つかると、オプションのためにそれ以上の検索を停止し、と評価されるため、他のブランチ(ディレクトリ印刷)をスキップします。そのため、含まれていない、または表示されるディレクトリのみが表示されます。.git
.hg
-prune
true
-o
.git
.hg
SOでこの質問を参照することもできます:shで「find」の「-prune」オプションを使用するにはどうすればよいですか?