WindowsからLinuxに切り替えたときに最初に気付いたのは、Linuxには厳密な命名規則がなく、.bmp、.jpg、.exeなどの必須のファイル名拡張子がないことです。そのため、ファイル名自体ではファイル形式を判別できません。
ファイルシステムのすべてのJPEGファイルに.jpg拡張子が付いている場合、すべてのJPEGファイルを次の方法で簡単に見つけることができます。
find / -type f -name "*.jpg"
しかし、そうでない場合は、すべてのJPEGファイルを見つける方法がわかりません。
Dirsとsubdirをクロールする場合:
find /home/place/to/crawl -type f -exec file --mime-type {} \; | awk '{if ($NF == "image/jpeg") print $0 }'
それは何ですか?
file
のすべてのiノードを検索image/jpeg
awk
編集:-i
でファイルを使用し、ファイルタイプの出力中にMIME文字列標準を使用するために、@ Franklinのヒントを追加しました。これにより、jpeg Wordの誤検知が減少します。
Edit2:@don_crisstiのヒントを追加。 awk
を使用して最後の列のみをフィルタリングし、image/jpeg
と一致する場合は行全体を出力します。文字セット情報を抑制するためにfile
スイッチを--mime-type
に変更しました