サブフォルダ内の特定の拡張子を持つすべてのファイルに対してエレガントな方法でタスクを実行するには?

サブフォルダ内の特定の拡張子を持つすべてのファイルに対してエレガントな方法でタスクを実行するには?

現在の最良の選択は次のとおりです。

for i in $(find . -name *.jpg); do echo $i; done

問題:ファイル名のスペースを処理しません。

注:私は「tree」コマンドのようなグラフィカルな方法も好みます。

ベストアンサー1

正式な方法は次のとおりです。

find . -name '*.jpg' -exec echo {} \;

\;(一度に+複数のファイルを渡して置き換えます)echo

または(GNU専用ですが、現在一部のBSDにも対応しています):

find . -name '*.jpg' -print0 | xargs -r0 echo

ジシュ語:

for i (**/*.jpg(D)) echo $i

おすすめ記事