如何创建自定义魔术文件数据库
Posted
技术标签:
【中文标题】如何创建自定义魔术文件数据库【英文标题】:How to create a custom magic file database 【发布时间】:2011-11-06 08:43:02 【问题描述】:unix file
命令使用“魔术”文件数据库来确定文件包含的数据类型,与文件名或扩展名无关。
我需要制作我的自定义魔法数据库以进行测试,但我找不到如何创建一个。
【问题讨论】:
【参考方案1】:您可以man magic
获取有关如何创建自己的魔法文件的说明。然后使用file -C -m <your magic file>
编译,file -m <your magic file>
使用。
【讨论】:
如果你有root权限,你可以根据需要编辑magic或magic.mime而不是创建一个新文件 再说一遍,这有什么帮助?如果在手册中,你能举个例子吗? @PauloNeves 语法的细节并不重要,因为手册页(或 link to it )要好得多。 “文件的每一行都指定要执行的测试。测试将从文件中特定偏移量开始的数据与字节值、字符串或数值进行比较。如果测试成功,则会打印一条消息。该行由以下字段组成:偏移量、类型、测试、消息”。 cweiske 在下面有一个示例作为答案。【参考方案2】:本文中:https://linux.die.net/man/1/file(或man file
)
搜索magic.mgc
进行解释
识别这些文件的信息从编译后的魔术文件 /usr/share/file/magic.mgc 中读取,如果编译文件不存在,则从
/usr/share/file/magic
读取。此外,文件将在 $HOME/.magic.mgc 或$HOME/.magic
中查找魔术条目。
【讨论】:
这如何帮助发布者创建自定义魔法数据库?【参考方案3】:我现在使用以下魔法文件进行单元测试:
0 search/1/c =<?php PHP script text
!:mime text/x-unittest
有了它,每个 php 文件(以 <?php
开头)都将获得 MIME 类型 text/x-unittest
。
另见http://cweiske.de/tagebuch/custom-magic-db.htm
【讨论】:
/1/c
后面的search
是什么意思?间距重要吗?
linux.die.net/man/5/magic 与字符串指令一样,在第一个位置使用正则表达式进行搜索,不区分大小写。以上是关于如何创建自定义魔术文件数据库的主要内容,如果未能解决你的问题,请参考以下文章