将 mime 类型从 freededesktop 规范转换为 libmagic 格式
阅读 shared-mime-info 规范< /a> 并在 /usr/share/mime/packages 中添加我自己的类型。我已经刷新了数据库:
$ update-mime-database /usr/share/mime
我尝试使用 gvfs-info,它返回正确的 mime。所以unix命令文件使用libmagic并且libmagic使用他自己的数据库 /usr/share/misc/magic 。 我想知道它们是否是将 xml 文件转换为 libmagic 的 magic 文件的方法?
After read shared-mime-info spec and add my own types in /usr/share/mime/packages. I have refreshed the database:
$ update-mime-database /usr/share/mime
I have try with gvfs-info, it return the right mime. So unix command file use libmagic and libmagic use his own database /usr/share/misc/magic .
I would like to know if they are a way to convert xml file to magic file for libmagic ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你不能。您的 mime-database 和 libmagic 执行两种不同的操作,并且可以结合使用。 Libmagic 读取文件头中的“幻数”,以确定它是什么类型的文件以及您的 mime 数据库将文件扩展名映射到其 mime 类型。
首先尝试通过扩展名确定文件,然后使用 libmagic 作为备份,以防万一
遇到一个没有扩展名的文件。
您不想只使用 libmagic,因为没有任何文件可以保证其标头中实际包含该“幻数”。为确定每个文件 mimetype 提供良好的支持
每次都正确可能很棘手。
如果您想读取 .desktop 文件,请使用 ini 解析器。
You can't. Your mime-database and libmagic do two different things and are made to be used in conjunction. Libmagic reads the "magic number" in a files header in order to determine what kind of file it is and your mime-database map's file extensions to its mime-type.
Try determining a file by its extension first and use libmagic as a backup in case you
come across a file with no extension.
You don't want to just use libmagic because no file is guaranteed to actually have that "magic number" in its header. Getting good support for determining every files mimetype
correctly every-time can be tricky.
If you want to read .desktop files use an ini parser.