JPEGファイルだけを見つける方法を探していますが、/Linuxに関する知識が不足して、次のような方法を思いつきました。
- ルートディレクトリに存在するすべてのパスを以下にリストします。
find /
- 結果を次のコマンドにパイプし、
file
見つかった各パスでそのコマンドを実行します。xargs file
- コマンドの結果には
file
JPEG文字列が含まれているので、IFステートメントは何とかJPEGのみをフィルタリングできると思いました。 If(JPEGはファイルコマンドの出力に含まれています){ファイルの引数を表示}
再:
find / | xargs file | "If statement"
私の言葉を訂正したり、仕事の実行方法についてのヒントや解決策を提供したいですか?
ベストアンサー1
ファイル名の拡張子に関係なくJPEGイメージを含むファイルを一覧表示するには、find
+を使用してfile
MIMEタイプのファイルを一覧表示できます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"
' {} \;