什么工具可以编辑/usr/share/mime/packages/freedesktop.org.xml文件

什么工具可以编辑/usr/share/mime/packages/freedesktop.org.xml文件

我编辑了 /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/packagessomedir中列出任何其他目录$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打开文件时扩展会自动将您置于正确的模式。高级编辑器将为您提供突出显示和缩进,以及您将在此过程中发现的一些更高级的功能。

相关内容