特定のパターンに一致するすべてのディレクトリとサブディレクトリを見つける(または除外する)方法(Linux)


17

Linuxのfindコマンドを使用して、パスに.svn(Subversion隠しフォルダー)がないすべてのディレクトリとサブディレクトリを検索しようとしています。実際の.svnディレクトリ自体を除外するだけで、サブディレクトリは除外できません。

これが私が今やっていることです。

find . -type d \! -iname '*.svn*'

私も試しました:

find . -type d \! iname '.svn' \! iname '.svn/*'

参考までに、findパターンを使用して、subversion隠しフォルダーとそのサブディレクトリを除くリポジトリ内のすべてのディレクトリにsubversionプロパティを適用しようとしています(execコマンドをfindコマンドから返されたディレクトリに適用することにより) )..

TIA

回答:


25
find . -type d -not \( -name .svn -prune \)

うまくいくように見えますが、私はこれを使います。
ジェイソンダウン

findで-pruneを使用したことがありますが、その\(... \)トリックを見たことはありません。ありがとう。
ロリー

node.js /エクスプレスアプリでノードモジュールを行のカウントから除外したい場合、これがどのように機能するかわかりますか?私が試した find . -name '*.js' -not \( -name 'node_modules' -prune \) | xargs wc -l ...成功せず
シュレッダー

Node.js / Expressアプリに関する@shreddingに対応し、node_modulesディレクトリをfindの結果から除外すると、これが機能します:find。-name「.test.js」-not(-wholename「* node_modules」)...実行するために私が欲しいのテストが「.test.js」接尾辞いることを考える
mysterlune

これなしで動作し-type dますか?すべてのファイルを検索したいが、「。git」ディレクトリを再帰的に除外する
ジェームズミッチ

6

どうでしょう

find . -type d |  grep -v '.svn'

いずれかの検索アクションを使用する能力が失われます。
デビッドパシュリー

はい、しかし、代わりに素敵な小さなshループはどうですか?:)のFILEの場合find . -type d | grep -v '.svn'; 何でもエコーします。完了
wazoox 09年

6

どのような-pathオプションを見つけるには?

find . -type d ! -path '*.svn*'

1
終わりの引用を逃しました。ワイルドカードが欲張りすぎる可能性があります。
ダンキャリー

2

見つける。-path './tmp' -prune -o .......


2

次を使用できます。

find . -type d -not -wholename '*.svn*' 

それは答えの前から*を取り除いた...見つける必要があります。-type d -not -wholename ' /.svn/ '(これは、wholename squoteアスタリスクスラッシュドットsvnスラッシュアスタリスクsquote)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.