ディレクトリツリーがあり、特定の種類(allなど.jpg
)のすべてのファイルを再帰的に検索したいのですが、ファイルがディレクトリツリーの一番下にある場合にのみファイルを一覧表示したいと思います。
たとえば、私のツリーが次のような場合:
home
root
f1 f2 f3
f11 f22 f33
f111 f222 f333
すべてのフォルダにこのエントリがあります。 //etcのエントリだけをリストし、親フォルダのエントリは無視したいと.jpg
思います。.jpg
f111
f222
f333
find . -name "*.jpg"
findコマンド(たとえば)を使用してツリー全体のすべてのアイテムのリストを取得できることを知っていますが、「結果の追加」などの操作を行わずに、一番.jpg
下のフォルダにのみリストを制限する方法がわかりません。何百ものフォルダがあり、最後のレベルのフォルダがすべてのフォルダに別々の名前を持っているかどうかわからないため、実際には実現できません。grep
111
222
333
ベストアンサー1
これは2つのステップで実行できます。
find . -type d -links 2 -print0 | xargs -0 -I{} find {} -name \*.jpg
最初のコマンドは、サブディレクトリなしですべてのディレクトリを一覧表示します(各サブディレクトリはリンク数に1を追加し、空のディレクトリには2があるため)。 2番目はfind
各結果を手動で呼び出します。