![深入挖掘不同的哑剧类型关联](https://linux22.com/image/166831/%E6%B7%B1%E5%85%A5%E6%8C%96%E6%8E%98%E4%B8%8D%E5%90%8C%E7%9A%84%E5%93%91%E5%89%A7%E7%B1%BB%E5%9E%8B%E5%85%B3%E8%81%94.png)
我想对哑剧类型有更深入的了解。到目前为止我明白了以下内容,感谢@munzir-塔哈
在不同的系统上有不同的 mime 类型文件关联是正常的,即使这些系统运行的是相同发行版的相同版本并且即使用户没有自定义任何 mime 关联。这是因为关联取决于每个系统中安装的软件包以及它们的安装顺序。
我还了解用户可以使用以下任一方法添加或删除 mime 类型关联:
手动编辑
~/.config/mimeapps.list
使用 GUI 工具。在 KDE 中,这可以在系统设置中或通过 Dolphin 完成(例如,右键单击文件 > 属性 > 文件类型选项,然后将文件类型与所需的应用程序关联)
然而,我想更深入地探讨这一点。我正在运行 Arch Linux 和 KDE。我创建了一个新的用户帐户进行测试。它具有以下属性:
已安装共享 mime-info 包:
sudo pacman -Qs shared-mime-info
local/shared-mime-info 1.15-2
Freedesktop.org Shared MIME Info
公钥具有 mime 类型的文本/纯文本:
$ xdg-mime query filetype id_rsa_test.pub
text/plain
text/plain 的默认处理程序是 Atom 编辑器:
$ xdg-mime query default text/plain
atom.desktop
mimeapps.list
该用户没有。典型文件不存在(如下所示),并且mimeapps.list
该用户帐户中没有其他文件。
$ less ~/.config/mimeapps.list
/home/deleteme/.config/mimeapps.list: No such file or directory
系统似乎对.pub
mime-type 的文件具有系统范围的关联application/vnd.ms-publisher
。该文件存在于系统上:
/usr/share/mime/application/vnd.ms-publisher.xml
上述文件的内容包括 .pub
文件的 glob 模式:
<?xml version="1.0" encoding="utf-8"?>
<mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="application/vnd.ms-publisher">
<!--Created automatically by update-mime-database. DO NOT EDIT!-->
<sub-class-of type="application/x-ole-storage"/>
<glob pattern="*.pub"/>
</mime-type>
为什么上面的 mime-type 不能确定该查询的结果?
$ xdg-mime query filetype id_rsa_test.pub
text/plain
据我所知,我希望用户本地的 mimeapps.list 负责该关联,但没有任何这样的文件。
.pub
我在该系统上没有找到任何其他文件关联。正如我所提到的,这个新用户帐户没有 mimeapps.list。
答案1
系统似乎对 .pub 文件与 mime 类型 application/vnd.ms-publisher 有系统范围的关联
你没有为此提供任何证据。相反,你的xdg-mime query filetype id_rsa_test.pub
表现text/plain
是全系统的如果这确实是一个没有任何自定义的新创建的用户,则关联。
为什么上面的 mime-type 不能确定该查询的结果?
根据系统上安装的软件包和配置,您的系统将决定如何识别 mimetype。就您而言,您的系统很可能确定了类型不是通过检查扩展名'.pub',但是通过检查魔法代码是文件的内容。