Linuxでファイルタイプを判別する方法
質問
誰かが拡張子のないドキュメント(.pdf、.doc、.xls、ppt、.ogg、mp3、pngなど)を私に送信した場合、どのようにファイルタイプを判別できますか? / usr / bin / fileコマンドが常に正しいとは限らないか、Microsoft Office文書があると単純に言っています。ファイル名に拡張子を追加できるように正確に知りたいです。
解決
/ etc / magicに追加することにより、独自のルールを作成できます
詳細については、manファイル。これらを常に正しくするのは難しいですが、私は合理的な成功を収めています。
他のヒント
mimetype(1)を試してください。
Perlについては、 File :: MimeInfo をご覧ください。
他のポスターのいくつかは、これまでのところいくつかのことを無視しているようです。
File :: MimeInfo は、「file」で使用されるのと同じMimeInfoデータベースを使用してファイルを識別します。だから、それは別の何かをすることはほとんどありません。
File :: Type は、それ自体に依存しているため、興味深い可能性があります。しかし、これは、「if」ステートメントでいっぱいのコミカルな長いスクリプトにつながります。しかし、これはその性質上、「ファイル」がすでにカバーしていないものをカバーする可能性は低いです。
未知のファイルタイプでできる最善の方法は、16進エディタでそれらをクラックするか、「文字列」を介して実行して、何かを認識するかどうかを確認することです。ファイルの識別方法を管理している場合は、 File :: Type を使用してください。私の知る限り、少なくとも簡単に拡張できるからです。
Perlモジュールを使用できます: File :: Type