CLIツールを使用してLinuxシステムからMIME接続を完全に削除する方法は?

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

私の質問の概要を知りたいです。削除方法どのシステムでMIMEタイプの接続を実行するには、CLIツールのみを使用してください。

編集:答えに返信:

新しいユーザーアカウントに次のものが表示されます。

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とのファイル関連付けを完全に削除するにはどうすればよいですか?承認された方法ではありませんが、どうすればよいですか?

ベストアンサー1

.pub ファイルは、プレーンテキスト文書のデフォルトハンドラによって開きます。これが標準のArch Linuxで見ることができると期待していました。

持ついいえこれを期待しなければならない理由。このパッケージはMicrosoft発行元の文書とshared-mime-info見なされます。.pubデフォルト値にする必要があると思う場合は、plain/textそれをアップストリームに報告する必要があります。

私は個人的にこれが間違いだと思っており、GNU / Linuxの基本ファイル拡張子よりもM $独自の形式の拡張子を優先してはいけません。またはより良い使用魔法また全体的な状況

CLIツールのみを使用してシステムからMIMEタイプの接続を削除する方法を知りたいです。

システム全体のMIMEタイプ接続をまったく削除しないでください。成功してもシステムアップデートに戻ります。

あなたがすべきことは、システムタイプをオーバーライドするために独自のMIMEタイプを追加することです。他の質問ですでに知っているようにここ、あなたはそれを使用することができますグローバルにすべて削除前の定義の上書き

おすすめ記事