深入探勘不同的 mime 類型關聯
我想更深入地了解 mime 類型。到目前為止,感謝@munzir-taha ,我了解以下內容
在不同系統上具有不同的 mime 類型文件關聯是正常的,即使這些系統執行的是同一發行版的相同版本,即使使用者沒有自定義任何 mime 關聯。這是因為關聯取決於每個系統中安裝的軟體包,可能還取決於它們的安裝順序。
我還了解使用者可以使用以下任一方法添加或刪除 mime 類型關聯:
- 手動編輯
~/.config/mimeapps.list
- 使用 GUI 工具。在 KDE 中,這可以在系統設置中或通過 Dolphin 完成(例如,右鍵點擊文件 > 屬性 > 文件類型選項並將文件類型與您想要的應用程序相關聯)
但是,我希望更深入地研究這一點。我正在執行 Arch Linux 和 KDE。我創建了一個新的使用者帳戶進行測試。它具有以下屬性:
軟體包 shared-mime-info 已安裝:
sudo pacman -Qs shared-mime-info local/shared-mime-info 1.15-2 Freedesktop.org Shared MIME Info
公鑰具有 mime 類型的 text/plain:
$ 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
上述文件的內容包括文件的 glob 模式
.pub
:<?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。
該系統似乎與 mime 類型的 application/vnd.ms-publisher 具有系統範圍的 .pub 文件關聯
你沒有為此提供任何證據。相反,如果這真的是一個沒有任何自定義的新創建的使用者,你會
xdg-mime query filetype id_rsa_test.pub
顯示text/plain
哪個是系統範圍的關聯。為什麼上面的 mime-type 不能確定這個查詢的結果?
根據系統上安裝的軟體包和配置,您的系統將決定如何辨識 mimetype。在您的情況下,您的系統很可能不是通過檢查副檔名**’.pub’來確定類型,而是通過檢查作為文件內容的魔術程式碼來確定類型。**