web-dev-qa-db-ja.com

特定のファイル拡張子に関連付けられたプログラムをプログラムで取得する方法

手動のGUIを使用せずに、特定のファイル拡張子を持つファイルを開く方法を確認するにはどうすればよいですか(例:.rb)?

ファイルの関連付けをグローバルに変更するにはどうすればよいですか? は、GUIを介した手動を含め、プログラムで読み取ることであり、変更することではありません(- https://askubuntu.com/ a/289339/3499 構成ファイルのセットを解析すると回答が得られる可能性があるというヒント)

XYの問題を回避するには:システムインストールスクリプトがありますが、Okularの終わりがテキストエディターではなく.rb.py.txtおよびその他のテキストファイルに関連付けられていることを除いて、正常に機能します。インストールスクリプトを再実行し、すべての手順の後に特定のファイル拡張子を開いているログを記録します。私はそれが私が間違っていることをデバッグすることを可能にすることを願っています。

1

この問題への回答の上のコメントをまとめると、2つのステップのプロセスになります。

まず、ファイルのMIMEタイプを判別します。

MIMETYPE=$(xdg-mime query filetype "<your-file-here>")

次に、このタイプに関連付けられたデフォルトのアプリケーションを取得します。

xdg-mime query default "$MIMETYPE"

したがって、MIMEタイプはたとえばtext/x-pythonとなり、アプリケーションはシステム上ではgedit.desktopとなります。

これをワンライナーにすることもできます:

xdg-mime query default "$(xdg-mime query filetype '<your-file-here>')"
5
mark