1

作業ディレクトリでこのコマンドを使用しようとしました

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

動作しないようですか?

.gitpruneを削除すると、.hgディレクトリのみが除外され、サブディレクトリは除外されません。

4

2 に答える 2

4
find . \( -name .git -o -name .hg \) -prune -o -type d -print
于 2013-01-11T04:25:26.713 に答える
2

私の答えは、私が賛成した@Barmarの答えと本質的に同じです。

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

このコマンドについての少しの説明があなたに役立つかもしれません:

ここで-o意味しORます。またはにfind一致するファイルの名前が見つかると、オプションのためにそれ以上の検索を停止し、と評価されるため、他のブランチ(ディレクトリ印刷)をスキップします。そのため、含まれていない、または表示されるディレクトリのみが表示されます。.git.hg-prunetrue-o.git.hg

SOでこの質問を参照することもできます:shで「find」の「-prune」オプションを使用するにはどうすればよいですか?

于 2013-01-11T04:53:05.893 に答える