コマンドラインを使用して以下のルートディレクトリのJPEGファイルのみを一覧表示するにはどうすればよいですか?

コマンドラインを使用して以下のルートディレクトリのJPEGファイルのみを一覧表示するにはどうすればよいですか?

JPEGファイルだけを見つける方法を探していますが、/Linuxに関する知識が不足して、次のような方法を思いつきました。

  1. ルートディレクトリに存在するすべてのパスを以下にリストします。find /
  2. 結果を次のコマンドにパイプし、file見つかった各パスでそのコマンドを実行します。xargs file
  3. コマンドの結果にはfileJPEG文字列が含まれているので、IFステートメントは何とかJPEGのみをフィルタリングできると思いました。 If(JPEGはファイルコマンドの出力に含まれています){ファイルの引数を表示}

再:

find / | xargs file | "If statement" 

私の言葉を訂正したり、仕事の実行方法についてのヒントや解決策を提供したいですか?

ベストアンサー1

ファイル名の拡張子に関係なくJPEGイメージを含むファイルを一覧表示するには、find+を使用してfileMIMEタイプのファイルを一覧表示できますimage/jpeg

find . -type f -exec sh -c '
    file --mime-type "$0" | grep -q image/jpeg\$ && printf "$0\n"
' {} \;

または

find . -type f -exec sh -c '
    mt=$(file --brief --mime-type "$0")
    [ -z "${mt#image/jpeg}" ] && printf "$0\n"
' {} \;

おすすめ記事