2013-02-01 60 views
1

我編寫項目,我需要識別某些文件格式。 對於某些格式,我發現了很容易識別的簽名(mp3,ogg),另一種格式有很大的問題(比如MPEG ADTS) - 我找不到可以使用哪種簽名。Linux文件實用程序magic.mgc數據庫獲取內容

我發現Linux環境下的File實用程序可以做到這一點。 我試圖在源代碼中搜索它,但我什麼也沒找到。

我發現文件實用程序將其數據庫保存在magic.mgc文件中。但它是以二進制形式存在的。 它看起來像: enter image description here

是否有人也許知道如何找到以純文本格式的數據庫?

回答

7

該實用程序不是Linux特定的實用程序;它是the version of the UN*X file command originally written by Ian Darwin。二進制.mgc文件是從一堆源文件生成的。

你的Linux發行版可能有一個源代碼包;您獲取該軟件包的位置以及安裝方式取決於您使用的是哪種分發版。

從中產生.mgc文件也可能適用於您的發行源文件,而無需安裝源包file;如果是這樣,您可以使用file命令生成它,使用-C標誌。我沒有在我的Ubuntu 12.04虛擬機上的任何地方看到它們,因此可能需要安裝其他包(file本身安裝)。 (在OS X上,它們位於目錄/usr/share/file/magic中。)

或者,您可以下載該文件的標準版本(可能已由您的發行版修改,因此您可能不想要該版本),並修改並建立它。請注意,在某些版本的UN * X系統中,file命令完成的大部分工作是在「libmagic」庫的庫例程中完成的;看你的發行版是否有這種功能,或者可以安裝它(例如試試man libmagic)以及它是否可以爲你完成這項工作。

+0

如果我可以在源代碼中找到這些信息,但是我已經看過所有的代碼並且沒有發現任何東西(雖然它應該在那裏,但我真的不會看到它!) – Tebe

+3

在源代碼目錄的'magic'子目錄中。 – 2013-02-01 19:18:35

+1

好的,謝謝,我在那個地方找到了一些東西 - http://storage2.static.itmages.com/i/13/0202/h_1359811651_3068937_b0f804756a.png。據我瞭解,這是文件格式的分類。但如果我打開一個,內容的含義是不可理解的http://codepad.org/NwXA6YPx,我期望找到像「mp3格式 - 有這樣的標題」,「mp4 - 有這樣的標題」等等,但它是什麼?謝謝,因爲你試圖弄清楚這些事情 – Tebe