「ファイル」として認識されるファイル形式について人が読める情報をどのように見つけることができますか?

「ファイル」として認識されるファイル形式について人が読める情報をどのように見つけることができますか?

検索、グーグル、に関する情報が見つかりませんfile

たとえば、* .mp4ファイルは「ISOメディア」として認識されます(VLCを使用して正常に再生できます)。これは100%明確ではなく、これが正しい検出であるのか、ファイルがISOイメージと混同されているのか疑問に思います。 (サンプルが何らかの方法で破損しているか、アルゴリズムがすべてのタイプに対して100%正確ではないためです。)

私の問題は、ファイルの種類によって切り替えられるいくつかの規則を設定する必要があることです。サンプルファイルセットを作成しましたが、コードが認識する必要があるすべての種類のサンプルを十分に収集することはできません。実際のシーンはすごいかもしれません。

あまり明確ではないタイプの参考資料として使用するいくつかのレビューを読むことができれば十分です。しかし、驚くべきことに有用な情報が見つかりませんでした。私の検索のほとんどは魔法のファイル形式仕様で終わりましたが、これは実際には役に立ちませんでした。私は...に興味があります。これDebian と共に配布されるマジックファイル。

答え1

タイプ検出情報は実際にはファイルプログラムに組み込まれていません。ファイルプログラムはマジックファイルを読み取り、そのファイルから署名を検索して一致するものを確認します。

このマジックファイルは、magic.mgcコンパイルされたバージョンと人間が読める元のソースコードですmagic。私のFedoraベースのシステムでは、次の場所にあります。

/usr/share/misc/magic
/usr/share/misc/magic.mgc

ファイル形式の詳細については、magic(5)マニュアルページで確認できます。

答え2

さて、fileコマンドのソースコードが人間が読むことができるかどうかはわかりません。

しかし、mp4がisoとして認識される理由を知りたい場合は、ソースコードを読み始めます。

関連情報