
からhttps://linux.die.net/man/1/ファイル:
マジック テストは、特定の固定形式のデータを持つファイルを確認するために使用されます。この標準的な例は、バイナリ実行可能 (コンパイル済みプログラム)
a.out
ファイルです。このファイルの形式は、標準の include ディレクトリで定義され#include <a.out.h>
、場合によっては#include <exec.h>
そのディレクトリ内で定義されます。これらのファイルには、ファイルの先頭近くの特定の場所に格納されている「マジック ナンバー」があり、この番号によって UNIX オペレーティング システムに、ファイルがバイナリ実行可能ファイルであること、およびその種類がいくつかあることが通知されます。「マジック」の概念は、データ ファイルに拡張によって適用されています。ファイル内の小さな固定オフセットに不変の識別子を持つファイルは、通常、この方法で記述できます。これらのファイルを識別する情報は、コンパイル済みマジック ファイルから読み取られる/usr/share/misc/magic.mgc
か、コンパイル済みファイルが存在しない場合はディレクトリ内のファイルから読み取ら/usr/share/misc/magic
れます。さらに、$HOME/.magic.mgc
またはが$HOME/.magic
存在する場合は、システム マジック ファイルよりも優先して使用されます。が/etc/magic
存在する場合は、他のマジック ファイルと一緒に使用されます。
まあ、そうですね。では、偶然にも、テキスト ファイルに、たとえばmp4
適切なオフセットのビデオに固有の「マジック ナンバー」が含まれていた場合、そのようなテキスト ファイルをダブルクリックすると、テキスト エディターではなくビデオ プレーヤーが起動するのでしょうか。
答え1
それは状況によります。デスクトップでは、ファイルのMIMEタイプを で調べてインデックスを作成するかもしれませfile
ん。あるいは、単にファイルの拡張子を見て、それを信じるかもしれません(例えば、ファイル拡張子と MIME タイプのクイックリファレンス
)。
いずれにせよ、ビデオプレーヤーは自分のファイルが正しく読み込まれることを確認するためのチェックが行われ、単純な実装では最初の数バイトだけが確認されます。
このfile
プログラムは、さまざまな情報(測定の重みを含む)を使用します。MPEG4ファイルには、file
使用しない(または必要のない)多くの情報が含まれています。たとえば、MPEG-4 Part 14 オーディオ (M4A、M4B、M4P) フォーマットと復元の例、 そしてMP4 署名フォーマット: ドキュメントと回復の例