mime 文件的混淆:magic、magic.mgc、magic.mime

mime 文件的混淆:magic、magic.mgc、magic.mime

我正在使用 Ubuntu。我正在尝试将 ruby​​ gem 'shared-mime-info' 用于我正在编写的应用程序。

据我所知,magic.mgc 是魔术文件的编译版本,它具有针对不同文件类型的魔术数字定义。

但是我不明白为什么 /usr/share/mime/magic 是二进制格式,而不是像我在互联网上找到的其他地方引用此文件时那样,只是普通的文本文件,其中每个参数都用空格分隔?

/usr/share/mime/magic 在文件开头有单词 'MIME-Magic',并优先考虑其余内容。所以它看起来根本不像 magic.mgc。

[100:application/vnd.scribus]
>1=^@^KSCRIBUSUTF8
[90:application/vnd.stardivision.writer]
>2089=^@

shared-mime-info 似乎想要一个如上所述的二进制非编译格式的魔术文件,我想为 DOCX 添加定义,但如何在不使用十六进制编辑器的情况下更新或生成此文件?

我找到了以下魔术文件的参考: http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html

它提到这个文件是使用 update-mime-database 更新的,但如果我只想向其中添加一些新条目,该怎么办?十六进制编辑器?

无论如何,我最终使用 hexer 在 ~/.local/share/mime/ 中创建了一个新的 magic 文件,其中只有我想要添加的条目和​​ MIME-Magic 标头。似乎有效(假设我现在会处理 docx)。

00000000:  4d 49 4d 45 2d 4d 61 67  69 63 00 0a 5b 36 30 3a  MIME-Magic..[60:
00000010:  61 70 70 6c 69 63 61 74  69 6f 6e 2f 76 6e 64 2e  application/vnd.
00000020:  6f 70 65 6e 78 6d 6c 66  6f 72 6d 61 74 73 2d 6f  openxmlformats-o
00000030:  66 66 69 63 65 64 6f 63  75 6d 65 6e 74 2e 77 6f  fficedocument.wo
00000040:  72 64 70 72 6f 63 65 73  73 69 6e 67 6d 6c 2e 64  rdprocessingml.d
00000050:  6f 63 75 6d 65 6e 74 5d  0a 3e 30 3d 00 08 50 4b  ocument].>0=..PK
00000060:  03 04 14 00 06 00 0a --  -- -- -- -- -- -- -- --  .......---------

相关内容