2011-08-29 75 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