如何以程式設計方式取得與給定檔案副檔名關聯的程式?

如何以程式設計方式取得與給定檔案副檔名關聯的程式?

例如,在沒有任何手動 GUI 使用的情況下,我如何檢查將開啟具有特定檔案副檔名的檔案.rb

不是重複的如何全域更改文件關聯?因為我的是以程式設計方式閱讀,不以任何方式改變,包括透過 GUI 手動(儘管https://askubuntu.com/a/289339/349903提示解析某些設定檔集可能會給出答案)

.rb為了避免 XY 問題:我有系統安裝腳本,除了 Okular 與、和其他文字檔案.py.txt而不是文字編輯器)相關聯之外,它工作正常。我想重新運行安裝腳本並在每一步之後記錄現在打開特定檔案副檔名的內容。我希望這能讓我調試出什麼問題。

答案1

總結上面的評論,這個問題的答案是一個兩步驟過程:

首先判斷文件的MIME類型:

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

然後取得與該類型關聯的預設應用程式:

xdg-mime query default "$MIMETYPE"

所以默劇類型可以是文本/x-python例如,應用程式是gedit.桌面在我的系統上。

您也可以將其製作為單襯:

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

相關內容