我正在运行 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
该系统已更新多次(每天),并且 ms-publisher 与.pub
文件的关联尚未恢复。请注意,该系统已shared-mime-info
安装,并且我能够使用纯文本编辑器打开公钥文件,正如我所期望的那样。在该系统上的另一个用户帐户中,我通过~/.config/mimeapps.list
该用户的条目拥有我的首选关联。
$ xdg-mime query default text/plain
org.kde.kate.desktop
回到主要问题:如何.pub
在系统级别完全删除文件与 Okular 和/或 Libre Office Draw 的关联?即使这不是经批准的方法,我该怎么做?
答案1
.pub 文件将由纯文本文档的默认处理程序打开。这就是我期望在我的标准 Arch Linux 上看到的
有不你应该期待这一点的原因。该shared-mime-info
包假定.pub
是 Microsoft Publisher 文档。如果您认为默认值应该是plain/text
,那么您需要向上游报告此情况。
我本人认为这是一个错误,他们不应该使 M$ 专有格式扩展优先于 GNU/linux 本机文件扩展。或者更好地使用 use魔法此外全局
我想了解如何仅使用 CLI 工具从系统中删除任何 mime 类型关联
您根本不应该删除系统范围的 mime 类型关联。即使你设法做到了,它也会随着系统更新而回来。
您应该做的是添加您自己的 mime 类型来覆盖系统类型。正如您从其他问题中已经知道的那样这里, 您可以使用全局删除所有覆盖以前的定义
答案2
系统上的系统范围默认 MIME 关联由
/usr/share/mime/packages/freedesktop.org.xml
。
所以,如果你想让你的系统完全忘记你不愉快的 mime 类型,你必须删除部分
<mime-type type="application/vnd.ms-publisher">
...</mime-type>
从这个文件,然后运行
sudo update-mime-database /usr/share/mime
在那之后。如何“使用 CLI 工具”编辑 XML 文件是另一个问题:)
Munzir Taha 明确指出了另一个问题:
稍后会随着系统更新而回来
还有最终的解决方案—— i
(不可变)属性:
sudo chattr +i /usr/share/mime/packages/freedesktop.org.xml
。
在 Arch Linux 上,您将收到以下警告吃豆人该文件无法升级,但不会破坏整个升级过程。