我编辑了 /usr/share/mime/packages/freedesktop.org.xml (使用文本编辑器)来修改 application/x-7z-compressed mime 类型的文件图标:
<mime-type type="application/x-7z-compressed">
<generic-icon name="package-x-generic"/>
我想知道是否有一个工具可以编辑此文件(或更改 mime 类型的图标)而不是使用文本编辑器?
编辑:我的目标是编写我对 freedesktop.org.xml 文件的修改的脚本,以便文本编辑器不合适。
我想要一个命令行工具来编辑所选 MIME 类型的标签name
属性。generic-icon
编辑:正如@Gilles 向我指出的那样,修改文件应该$XDG_DATA_HOME/mime/packages/Override.xml
比修改文件更好/usr/share/mime/packages/freedesktop.org.xml
。但这并没有真正改变我的问题。
答案1
/usr/share/mime/packages/freedesktop.org.xml
是个免费桌面 MIME 数据库。该网页列出了许多用于查询该数据库的工具,以及一些用于修改该数据库的工具。
您不应该手动修改此文件:下面/usr
但外部的文件/usr/local
由您的发行版的包管理器管理,并且您的修改将在下次升级时被覆盖。相反,请在 中写入您自己的文件/usr/local/share/mime/packages
,或者somedir/packages
在somedir
中列出任何其他目录$XDG_PATH
。修改文件后,运行update-mime-database /usr/local/share/mime/packages
以更新缓存(您需要运行update-mime-database
无论如何,因为应用程序读取二进制缓存而不是 XML 文件)。
答案2
我想您可以使用您选择的语言中可用的任何 XML 库以编程方式修改此类 XML 文档。例如在 python 中可用https://docs.python.org/3/library/xml.html
答案3
XML 的要点是您应该能够使用编辑器手动编辑它,并且无需任何多余的软件即可查看它(如果需要)。
这是 XML 的优点之一。甚至 Lisp 人员也想把 XML 归功于自己,声称其不受限制的标记数据方式是对 Lisp 关联列表(或alist
)数据结构的重新发明。
但是,尽管严格来说没有必要,但在某些情况下您可能需要额外的软件。例如,在Unix/Linux世界中,常用的做图表、状态机插图等的工具是Dia。在 Dia 中,当你绘制图表时,你使用他们的 GUI。但您看到的只是绘图在内部如何表示的 GFX 表示形式 - 作为 XML。这是一个很好的例子,因为使用编辑器编辑和查看 XML 没有什么意义:尽管这是完全可能的,但它并不实用。
但是,就您而言,您没有绘制任何内容或执行任何会激发 GUI 界面的操作。所以编辑器就可以了。如果您使用 Emacs,.xml
打开文件时扩展会自动将您置于正确的模式。高级编辑器将为您提供突出显示和缩进,以及您将在此过程中发现的一些更高级的功能。