Unixでマジックファイルが何であるかを説明してください。 [閉じる]

Unixでマジックファイルが何であるかを説明してください。 [閉じる]

を使用できます。また、file -C -m filename私のOS Xコンピュータには、マジックファイルのリストを含む/usr/share/file/magicフォルダがあります。

しかし、これは何ですか?誰かが説明できますか?なぜマジックファイルが必要なのですか?マジックファイルをどのように生成するのですか?

man fileマニュアルページ(および)を読みman magicましたが、まだ明確ではありません。

答え1

Unixでは、ファイルは単なるバイトのシーケンスですが、一部のファイルはより多くの構造を持っています。このfileコマンドはバイトシーケンスを表示し、いくつかの情報を知らせることができます。たとえば、最初の4バイトが\ 177 ELFの場合、これがelfファイルであることを知らせます。次に、より多くのバイトを見て、それがコアファイルであるか、実行可能ファイルであるか、オブジェクトファイルであるかを伝えます。 6〜9バイトがJFIFの場合、これはピクチャファイルであり、プログラムはそれについてより詳細に読み取って通知することができます。

多くの部分がプログラムにコンパイルされるのではなく、データテーブルによって駆動されます。これらのデータテーブルはファイルの内容ですmagic

だからあなたがマジックファイルを持っている理由は、あなたがそれを話し、file *プログラムが現在のディレクトリに何があるかを伝えるようにすることです。

関連情報