web-dev-qa-db-ja.com

`file`によって認識されるファイルタイプに関する人間が読める情報を見つける方法は?

検索、グーグルで、fileによって認識されるファイルタイプに関する情報が見つかりませんでした。

たとえば、*。mp4ファイルは「ISOメディア」として識別されます(VLCで通常どおり再生できます)。これは100%明確ではありません。それが正しい検出なのか、ファイルがISOイメージと混同されているのか疑問に思います。 (たとえば、サンプルが何らかの理由で破損しているため、またはアルゴリズムがすべてのタイプで100%正確ではないためです。)

私の問題は、ファイルタイプに基づいて切り替えるためのいくつかのルールを設定する必要があることです。サンプルファイルセットを作成しましたが、コードで認識する必要のあるすべてのタイプのサンプルを十分に収集できません。そして、実際のセットはおそらく本当に巨大になるでしょう。

あまり明白ではないタイプへの参照として使用するためにいくつかのコメントを読むことができれば、私にとっては十分でしょう。しかし、驚いたことに、役立つ情報が見つかりませんでした。私の検索のほとんどは、魔法のファイル形式の仕様で終了しましたが、これは私にはあまり役に立ちません。私は興味がありますtheたとえばDebianで配布されている魔法のファイル。

2
Alois Mahdal

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

マジックファイルは、コンパイルされたバージョン_magic.mgc_としても、人間が読める形式でmagicと呼ばれる元のソースとしても存在します。私のFedoraベースのシステムでは、これらは次の場所にあります。

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

ファイルの形式の詳細については、magic(5)のマニュアルページを参照してください。

3
TomH

Fileコマンドのソースコードが人間が読める形式かどうかはわかりません。

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

2
Johan