2012-01-05 6 views
1

はのは、私がtest/2のものを除くtest/内のすべてのファイルを見つけるにはどうすればよいのでfindで-notを使用するには?

mkdir -p test/1 
mkdir -p test/2 
mkdir -p test/3 
touch test/1/touch 
touch test/2/touch 
touch test/3/touch 

のようなディレクトリ構造を持っているとしましょうか?

+2

が良いかもしれませんServerfaultまたはUnixとLinux。 –

答えて

1

短い検索の変異体である:

find test ! -path "test/2*" 

OUTPUT

test 
test/1 
test/1/touch 
test/3 
test/3/touch 
3

使用-pruneは:

find test -path 'test/2' -prune -or -print 
+0

それは私のために働くが、少し説明できますか?私は個人的に 'find 'に問題があり、そのようなもの(' - または--print')は時々動作します... –

+0

@DanFego:私は ' 'find'マンページの例を参照してください。 – thiton

+0

それはちょうど私を打つOhhhhhhh。パスが '' test/2''の場合、 'true && true || 'print'は発生しません。そうでなければ 'false && true ||この場合は印刷されます。 –

1

検索ディレクトリの除外のためのいくつかのgood examples hereあります。

1

あなたは、このよう-notを使用することができます。これを成し遂げるために

find -not -wholename './test/2*' 
+0

'。/ test/20 'とそのサブディレクトリは表示されません。 –

+0

@DanFego:はい。 9つ以上のサブディレクトリがある場合は、01,02 ... :-)という名前にする必要があります – choroba

+0

touche!誰かがこれを見つけて、すべてのディレクトリの名前を変更する方法について質問をします。 :P –

関連する問題