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タイプを追加することです。他の質問ですでに知っているようにここ、あなたはそれを使用することができますグローバルにすべて削除前の定義の上書き

答え2

システムのシステム全体の基本 MIME 接続は、以下によって決定されます。

/usr/share/mime/packages/freedesktop.org.xml

したがって、システムで不快なマイムタイプを完全に忘れさせたい場合は、その部分を削除する必要があります。

<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 では、次の警告が表示されます。パックマンこのファイルはアップグレードできませんが、アップグレードプロセス全体を中断することはありません。

答え3

より簡単な方法があります。

Dolphinについてはわかりませんが、XFCE用Thunarでファイルを右クリックします。 >次に開く>基本アプリケーション設定、下に推奨アプリケーション、アプリケーション名を右クリックし、関連性を忘れる

ここに画像の説明を入力してください。

またはより簡単です。 ~/.config/mimeapps.list を手動で編集し、以下にアプリ名を追加します。[接続を削除]。これが実際に上記のプロセスが実行することです。

関連情報