![Unixでマジックファイルが何であるかを説明してください。 [閉じる]](https://linux33.com/image/118266/Unix%E3%81%A7%E3%83%9E%E3%82%B8%E3%83%83%E3%82%AF%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E4%BD%95%E3%81%A7%E3%81%82%E3%82%8B%E3%81%8B%E3%82%92%E8%AA%AC%E6%98%8E%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%20%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
を使用できます。また、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 *
プログラムが現在のディレクトリに何があるかを伝えるようにすることです。