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

Teb*_*ebe 1 unix linux file

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

我发现Linux环境的File实用程序可以做到这一点.我试图用源代码搜索它,但我什么都没发现.

我发现文件实用程序将其数据库保存在magic.mgc文件中.但它以二进制形式存在.看起来像: 在此输入图像描述

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

小智 7

该实用程序不是特定于Linux的实用程序; 它是最初由Ian Darwin编写的UN*X文件命令的版本.二进制.mgc文件是从一堆源文件生成的.

你的Linux发行版可能有一个源代码包; 您获得该软件包的方式以及安装方式取决于您使用的软件包.

.mgc生成文件的源文件也可能在您的发行版上可用,而无需安装源包file; 如果是这样,您可以使用该file命令使用该-C标志生成它.我在Ubuntu 12.04虚拟机上看不到任何明显的东西,因此可能需要安装其他一些软件包(file本身安装).(在OS X上,它们位于目录中/usr/share/file/magic.)

或者,您可以下载该文件的标准版本(可能已由您的发行版修改,因此您可能不需要该版本)并修改和构建它.

请注意,在某些版本的UN*X系统上,该file命令完成的大部分工作是在"libmagic"库中的库例程中完成的; 看看您的发行版是否具有该发行版或者可以安装它(例如,尝试man libmagic)以及它是否可以为您完成工作.

  • 查看源代码目录的`magic`子目录. (3认同)
  • 这些文件主要用于计算机(特别是用于`file`命令)来读取; 他们支持评论作为人类的帮助,但不能保证魔术文件的一部分作者会费心添加评论.`man magic`应该描述系统上文件的格式. (2认同)
  • 对于MPEG ADTS,您想要查看的文件有点模糊,称为"动画".[MPEG ADTS没有"神奇的数字"](http://wiki.multimedia.cx/index.php?title=ADTS); "动画"文件根据同步字,版本和图层字段以及数据速率进行黑客攻击.请参阅该文件中的注释. (2认同)