.jpg拡張子が必要ない場合は、ファイルシステムですべてのJPGファイルを見つける方法は? [コピー]

.jpg拡張子が必要ない場合は、ファイルシステムですべてのJPGファイルを見つける方法は? [コピー]

WindowsからLinuxに切り替えるときに最初に感じたことは、Linuxには厳密な命名規則や.bmp、.jpg、.exeなどの必須ファイル拡張子がないことです。そのため、ファイル名自体ではファイル形式がわかりません。

マイファイルシステム内のすべてのJPEGファイルの拡張子が.jpgの場合、次の方法ですべてのJPEGファイルを簡単に見つけることができます。

find / -type f -name "*.jpg"

しかし、そうでない場合は、すべてのJPEGファイルを見つける方法がわかりません。

ベストアンサー1

ディレクトリとサブディレクトリをクロールするには、次の手順を実行します。

find /home/place/to/crawl -type f -exec file --mime-type {}  \; | awk '{if ($NF == "image/jpeg") print $0 }'

それは何ができますか?

  • このタイプのすべてのinodeを検索file
  • コマンドファイルを実行してファイルのjpegヘッダを取得します。例:image/jpeg
  • awk

編集する-i:MIME文字列標準を使用するためにファイル形式を出力するときにファイルを使用するように@Franklinヒントを追加しました。これにより、JPEG単語の誤検出が減少します。

編集2:@don_crisstiプロンプトを追加しました。最後の列のみをフィルタリングし、awk一致する場合は行全体を印刷しますimage/jpeg。文字セット情報を表示しないようにスイッチを変更fileする--mime-type

おすすめ記事