使用标准接口(使用 mimetype)以编程方式修改文件关联

使用标准接口(使用 mimetype)以编程方式修改文件关联

我知道有一些文件/etc/gnome/defaults.list存储了 MIME 关联并且其格式应该可以进行编辑。

但我正在寻找一种方法来处理以下至少一个问题

  • 此文件的格式是可以合理解析的。不过,使用有人制作并希望测试过的 API 可以节省一些时间并避免错误问题
  • 如果 API 能够根据操作系统版本、操作系统等了解该文件的位置,那就太好了。即使出现“不支持”的崩溃,也比编辑不再使用的内容的脚本要好

我想完全自动化我的 Ubuntu 安装——设置文件关联来纠正其中一个是其中的一部分。

甚至使用自动/半自动(如文档)方式来查找存储文件关联的地方也会受到欢迎。

如何全局更改文件关联?提及/usr/share/gnome/applications/defaults.list/usr/share/applications/defaults.list/usr/share/applications/mimeapps.list请参阅对于默认应用程序,我应该修改哪个 default.list,以及两者之间有什么区别?(所以我希望至少能够自动定位文件)

答案1

xdg-mime(1) 可能就是您正在寻找的。

此命令的手册页链接到 MIME 数据库规范https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/以及 MIME 应用程序关联规范http://www.freedesktop.org/wiki/Specifications/mime-apps-spec/

答案2

在某些情况下,以下方法有效,但不是全部:

查看 mimetype: file --mime-type -b sudolightburn.sh

查看当前关联: xdg-mime query default text/plain

改变关联: xdg-mime default codium.desktop text/plain

如果有人感兴趣的话,我有一个 ansible 角色使用它来设置合理的默认程序:https://github.com/matkoniecz/recovery-with-ansible/tree/master/roles/set_default_programs_for_file_types

相关内容