Linux文件实用程序magic.mgc数据库获取内容

时间:2013-02-01 01:04:26

标签: linux file unix

我编写需要识别某些文件格式的项目。 对于某些格式,我发现了用于轻松识别(mp3,ogg)的签名,而另一种格式我有一个大问题(如MPEG ADTS) - 我只是找不到可以使用哪种签名。

我发现Linux环境的File实用程序可以做到这一点。 我尝试在源代码中搜索它,但我什么也没找到。

我发现文件实用程序将其数据库保存在magic.mgc文件中。但它以二进制形式存在。 看起来像: enter image description here

有人可能知道如何以纯文本格式找到该数据库吗?

1 个答案:

答案 0 :(得分: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)以及它是否可以为您完成任务。