如何使用 CLI 工具從我的 Linux 系統中完全刪除 mime 關聯?
我正在執行 Arch Linux 和 KDE。我已經在幾台設備上安裝了 Arch KDE,在通常情況下,文件沒有特定的 mime 類型關聯
.pub
(在我的情況下是公鑰)。它們將由純文字文件的預設處理程序打開。這是我希望在我的標準 Arch Linux 安裝中看到的:$ xdg-mime query filetype id_rsa_test.pub text/plain
但是,在我的主桌面上,
.pub
文件與 ms-publisher 相關聯。$ xdg-mime query filetype id_rsa_test.pub application/vnd.ms-publisher
我想完全刪除這個關聯。以下是我發現這種關聯證據的一些地方:
$ grep -irl '.pub' ./.local/share/mime/ ./.local/share/mime/packages/application-vnd.ms-publisher.xml ./.local/share/mime/application/vnd.ms-publisher.xml ./.local/share/mime/globs ./.local/share/mime/globs2 ./.local/share/mime/types ./.local/share/mime/mime.cache $ sudo grep -irl 'ms-publisher' /usr /usr/share/applications/mimeinfo.cache /usr/share/mime/packages/freedesktop.org.xml /usr/share/mime/application/vnd.ms-publisher.xml /usr/share/mime/globs /usr/share/mime/globs2 /usr/share/mime/subclasses /usr/share/mime/types /usr/share/mime/mime.cache /usr/share/icons/breeze/mimetypes/64/application-vnd.ms-publisher.svg /usr/share/icons/breeze/mimetypes/22/application-vnd.ms-publisher.svg /usr/share/icons/breeze/breeze-icons.rcc /usr/share/icons/breeze/icon-theme.cache /usr/share/icons/breeze-dark/mimetypes/22/application-vnd.ms-publisher.svg /usr/share/icons/breeze-dark/breeze-icons-dark.rcc /usr/share/icons/breeze-dark/icon-theme.cache /usr/lib/libreoffice/share/xdg/draw.desktop
根據
xdg-mime
手冊頁,該uninstall
命令可能會起作用。至少在我的情況下,該uninstall
命令無效。# xdg-mime uninstall /usr/share/mime/application/vnd.ms-publisher.xml # echo $? 0 # sudo grep -irl 'ms-publisher' /usr /usr/share/file/misc/magic.mgc /usr/share/applications/mimeinfo.cache /usr/share/mime/packages/freedesktop.org.xml /usr/share/mime/application/vnd.ms-publisher.xml /usr/share/mime/globs /usr/share/mime/globs2 /usr/share/mime/subclasses /usr/share/mime/types /usr/share/mime/mime.cache /usr/share/icons/breeze/mimetypes/64/application-vnd.ms-publisher.svg /usr/share/icons/breeze/mimetypes/22/application-vnd.ms-publisher.svg /usr/share/icons/breeze/breeze-icons.rcc /usr/share/icons/breeze/icon-theme.cache /usr/share/icons/breeze-dark/mimetypes/22/application-vnd.ms-publisher.svg /usr/share/icons/breeze-dark/breeze-icons-dark.rcc /usr/share/icons/breeze-dark/icon-theme.cache /usr/lib/libreoffice/share/xdg/draw.desktop # grep -irl '.pub' /usr/share/mime/ /usr/share/mime/packages/freedesktop.org.xml /usr/share/mime/packages/calibre-mimetypes.xml /usr/share/mime/application/pkcs7-mime.xml /usr/share/mime/application/pkcs8-encrypted.xml /usr/share/mime/application/epub+zip.xml /usr/share/mime/application/x-pkcs7-certificates.xml /usr/share/mime/application/pkcs8.xml /usr/share/mime/application/pkcs10.xml /usr/share/mime/application/pkcs12.xml /usr/share/mime/application/vnd.ms-publisher.xml /usr/share/mime/globs /usr/share/mime/globs2 /usr/share/mime/magic /usr/share/mime/subclasses /usr/share/mime/types /usr/share/mime/generic-icons /usr/share/mime/mime.cache
對於我的問題,我想大致了解如何**僅使用 CLI 工具從我的系統中刪除任何mime 類型關聯。
編輯:對答案的回應:
在新使用者帳戶上,我顯示以下內容:
sudo pacman -Qs shared-mime-info local/shared-mime-info 1.15-2 Freedesktop.org Shared MIME Info $ xdg-mime query filetype id_rsa_test.pub text/plain $ xdg-mime query default text/plain atom.desktop $ less ~/.config/mimeapps.list /home/deleteme/.config/mimeapps.list: No such file or directory
該系統已多次(每天)更新,與
.pub
文件的 ms-publisher 關聯尚未恢復。請注意,這個系統已經shared-mime-info
安裝,我可以使用純文字編輯器打開公鑰文件,正如我所料。在此系統上的另一個使用者帳戶中,我通過~/.config/mimeapps.list
該使用者的條目獲得了我的首選關聯。$ xdg-mime query default text/plain org.kde.kate.desktop
回到主要問題:如何
.pub
在系統級別完全刪除文件與 Okular 和/或 Libre Office Draw 的關聯?即使這不是批准的方法,我該怎麼做?
.pub 文件將由純文字文件的預設處理程序打開。這是我期望在我的標準 Arch Linux 上看到的
你沒有理由期待這一點**。**該
shared-mime-info
包假定.pub
是 Microsoft Publisher 文件。如果您認為預設應該是plain/text
,那麼您需要向上游報告。我自己認為這是一個錯誤,他們不應該讓 M$ 專有格式擴展優先於 GNU/linux 本機文件擴展。或者最好還是使用除glob之外的****魔法
我想大致了解如何僅使用 CLI 工具從我的系統中刪除任何 mime 類型關聯
您根本不應該刪除系統範圍的 mime 類型關聯。即使您設法做到了,它也會在稍後通過系統更新回來。
您應該做的是添加您自己的 mime 類型來覆蓋系統類型。正如您在這裡的其他問題中已經知道的那樣,您可以使用glob-deleteall覆蓋以前的定義