私はfile
コマンドについて読んでいたのですが、よくわからないことがありました。
ファイルは、ファイルを実行することによって、これを達成する....照会されているファイルの種類を決定するために設計された3つの問題のファイルにテストのセットを:
- ファイルシステムのテスト、
- マジックテスト、
- 言語テスト
マジックテストとは何ですか?
私はfile
コマンドについて読んでいたのですが、よくわからないことがありました。
ファイルは、ファイルを実行することによって、これを達成する....照会されているファイルの種類を決定するために設計された3つの問題のファイルにテストのセットを:
- ファイルシステムのテスト、
- マジックテスト、
- 言語テスト
マジックテストとは何ですか?
回答:
ここでいう「マジック」とは、「マジックナンバー」を指します。ファイル内の既知の場所にあり、そのタイプを識別する特別な値です。file
コマンドは、これらの数字と彼らがに対応したタイプのデータベースを持っています。そのデータベースに付属するライブラリはlibmagicと呼ばれ、独自のプログラムからアクセスできます。
考えられるように、必ずしも「数字」ではありません。たとえば、PNG画像ファイルは常に「\ x89PNG \ r \ n \ x1a \ n」で始まり、Javaクラスは4バイト(16進数)CA FE BA BEで始まり、HTMLファイルはどこかに「<html」がありますスタート近く。そのタイプのファイル内にあることが知られているのは、通常は開始点に非常に近いデータの小さなシーケンスです。
ファイル形式を定義するとき、多くの場合、意図的に、または形式を合わせるための一部として、これらのいずれかをファイル形式に含めます。file
後で使用できます。また、ファイルの内容を実際に見て、それが何であるかを推測する他の方法もあります(「言語テスト」)。
#!
これらのバイトを見ると、カーネル自体が後続のコマンドを呼び出すことになっているため、実際にはこの例です。