find がサブディレクトリを再帰的に掘り下げないようにする方法はありますか?
質問
解決
こんにちは、
-prune を使用するという Jon からの提案を拡張したかっただけです。これは、使用する検索オプションの中で最も簡単なわけではありません。たとえば、現在のディレクトリを検索するだけの場合、find コマンドは次のようになります。
find . \( -type d ! -name . -prune \) -o \( <the bit you want to look for> \)
これにより、find がこのディレクトリ内のサブディレクトリに下降することがなくなります。
基本的に、「名前が "." ではないディレクトリであるものはすべてプルーニングします。つまり、現在のディレクトリ。」
find コマンドは、現在のディレクトリで見つかった各項目に対して左から右に評価します。つまり、最初の要素の完了後です。プルーン セグメントを削除すると、2 番目の -o (OR) 式で一致した項目が続行されます。
HTH。
乾杯、ロブ
他のヒント
考慮する:
-maxdepth n
True if the depth of the current file into the tree is less than
or equal to n.
-mindepth n
True if the depth of the current file into the tree is greater
than or equal to n.
ワイルドカードを使用した方が良い場合があります。たとえば、現在のディレクトリ内のすべての ksh スクリプトを検索したい場合は、次のようにします。
$ ls *.ksh
使用 -プルーン オプション。
あなたもそうするかもしれません
echo /specific/dir/*.jpg
ワイルドカードを展開するのはシェルであるためです。タイピング
ls *.jpg
と入力するのと同じです
ls foo.jpg bar.jpg
foo.jpg と bar.jpg は、現在のディレクトリにある「.jpg」で終わるすべてのファイルです。
所属していません StackOverflow