使用标准接口以编程方式修改文件关联(mimetype 无关紧要的情况)

使用标准接口以编程方式修改文件关联(mimetype 无关紧要的情况)

我知道我可以用来xdg-mime default codium.desktop text/plain改变text\plainmimetype 的关联(使用标准接口(使用 mimetype)以编程方式修改文件关联

但例如file --mime-type -b index.ts报告也text\plainxdg-mime query default text/plain报告codium.desktop

但是 index.ts 文件是由“Qt Linguist”打开的。与预期由 Codium 打开的 wat.txt 文件不同。

结果xdg-mime default codium.desktop text/plain没有任何效果。

是否有一些标准 CLI 选项可以覆盖任何设置此类默认值的内容?我可以接受它是 Ubuntu 专用的,甚至是 Lubuntu 专用的。不过我希望它尽可能广泛。

我知道我可以使用 GUI 将设置设置为合理的设置 - 但我想将其添加到系统设置脚本中,并避免在每次重新安装系统时手动执行此操作。

我现在发现~/.config/mimeapps.list现在包含行:text/vnd.qt.linguist=codium.desktop;由手动添加文件关联触发(不知道为什么 .ts 文件被 Qt 捕获但是......)。

运行xdg-mime default codium.desktop text/vnd.qt.linguist从 Qt 暴政中解放出来的 .ts 文件,现在在 Codium 中打开,就像我希望使用 TypeScript 文件一样(幸运的是我根本不关心 qt.linguist 文件,所以错误分类不会影响我)

那么我如何才能看到实际的 MIME 类型?在file --mime-type -b失败的情况下?

text/vnd.qt.linguistmimetype 吗?


我注意到文件属性 GUI 显示的 MIME 类型与 报告的 MIME 类型不同file --mime-type -b。如何在不使用 GUI 的情况下获取正确的 MIME 类型?

在此处输入图片描述

答案1

您缺少xdg-mime在特定文件上使用的功能。

我如何才能看到实际的哑剧类型?
尝试

$ xdg-mime query filetype index.ts

或者

$ mimetype index.ts

它似乎file检查文件的内容,同时xdg-mime使用多种方法来确定 MIME 类型,包括有时调用file。到目前为止,我还没有找到用于决定 MIME 类型的算法的规范xdg-mime,但我想这些信息对你的目的来说已经足够了。

text/vnd.qt.linguistmimetype 吗?
是的

有关的

  1. 为什么“file --mime-type”和“xdg-mime query filetype”的结果有区别?
  2. MIME 类型和文件扩展名之间有什么关系?
  3. https://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/10
  4. https://unix.stackexchange.com/questions/565202/kde-is-not-saving-a-mime-type-file-association

相关内容