2011-08-29 74 views
20

unix file命令使用「魔術」文件數據庫來確定文件包含哪種類型的數據,與文件的名稱或擴展名無關。如何創建自定義魔術文件數據庫

我需要製作我的自定義魔術數據庫用於測試目的,但我找不到如何創建一個。

回答

14

您可以man magic瞭解如何創建自己的魔法文件的說明。然後用file -C -m <your magic file>來編譯它,然後用file -m <your magic file>來使用它。

+0

如果你有root權限,你可以根據需要編輯magic或magic.mime,而不是再創建一個新文件 – yitwail

+0

,這有什麼幫助?如果它在手冊中,你可以舉一個例子嗎? –

+0

@PauloNeves語法的細節不是微不足道的,因爲手冊頁(或[鏈接到它](https://linux.die.net/man/5/magic))好得多。 「文件的每一行都指定了要執行的測試,測試將文件中從特定偏移量開始的數據與字節值,字符串或數值進行比較,如果測試成功,則會打印一條消息。由以下字段組成:偏移,類型,測試,消息「。下面的答案是cweiske的一個例子。 –

5

本文內容:https://linux.die.net/man/1/file(或man file

搜索magic.mgc的解釋

識別這些文件中的信息是從編譯magic文件讀取/usr/share/file/magic.mgc如果編譯文件不存在,則返回/usr/share/file/magic。此外,文件將在$ HOME/.magic.mgc或$HOME/.magic中查找魔術條目。

+1

這是如何幫助海報創建自定義魔術數據庫? – Gray

1

我現在使用下面的魔術文件我的單元測試:

0  search/1/c  =<?php     PHP script text 
!:mime text/x-unittest 

有了它,每一個PHP文件(<?php開始)將獲得MIME類型text/x-unittest