3

特定のファイル形式を特定する必要があるプロジェクトを作成します。一部の形式では、簡単に識別できる署名(mp3、ogg)を見つけましたが、別の形式では大きな問題があります(MPEG ADTSなど)。どの種類の署名を使用できるかがわかりません。

Linux環境用のファイルユーティリティでそれができることがわかりました。ソースコードで検索してみましたが、何も見つかりませんでした。

ファイルユーティリティがそのデータベースをmagic.mgcファイルに保持していることがわかりました。しかし、それはバイナリ形式で保持されます。次のようになります。 ここに画像の説明を入力してください

誰かがそのデータベースをプレーンテキスト形式で見つける方法をおそらく知っていますか?

4

1 に答える 1

8

そのユーティリティはLinux固有のユーティリティではありません。これは、元々IanDarwinによって作成されたUN*Xファイルコマンドのバージョンです。バイナリ.mgcファイルは、一連のソースファイルから生成されます。

Linuxディストリビューションには、おそらくそのソースコードパッケージが含まれています。そのパッケージをどこで入手し、どのようにインストールするかは、使用しているディストリビューションによって異なります。

.mgcファイルが生成されたソースファイルは、 ;のソースパッケージをインストールしなくても、ディストリビューションで利用できる場合があります。fileその場合は、フラグを使用してfileコマンドを使用して生成できます。-CUbuntu 12.04仮想マシンでは明らかな場所が見当たらないため、他のパッケージをインストールする必要がある場合があります(fileそれ自体インストールされています)。(OS Xでは、それらはディレクトリにあり/usr/share/file/magicます。)

または、そのファイルの標準バージョン(ディストリビューションによって変更されている可能性があるため、そのバージョンは必要ない場合があります)をダウンロードして、変更およびビルドすることもできます。

UN * Xシステムの一部のバージョンでは、コマンドによって実行される作業の大部分はfile、「libmagic」ライブラリのライブラリルーチンで実行されることに注意してください。ディストリビューションにそれがあるか、インストールできるか(たとえば、試してみてくださいman libmagic)、そしてそれがあなたに代わって仕事をすることができるかどうかを確認してください。

于 2013-02-01T01:17:13.540 に答える