Как программно получить программу, связанную с заданным расширением файла?

Как программно получить программу, связанную с заданным расширением файла?

Как я могу без использования ручного графического интерфейса проверить, что откроет файл с определенным расширением, например .rb?

Не дубликаткак можно изменить глобальное сопоставление файлов?так как мой касается программного чтения, без каких-либо изменений, включая ручное через графический интерфейс (хотяhttps://askubuntu.com/a/289339/349903намекает, что анализ некоторого набора конфигурационных файлов может дать ответ)

Чтобы избежать проблемы XY: у меня есть скрипт установки системы, который работает нормально, за исключением того, что Okular заканчивается связанным с .rb, .py, .txtи другими текстовыми файлами вместо текстового редактора. Я хочу перезапустить скрипт установки и записать, что теперь открывает определенные расширения файлов после каждого шага. Надеюсь, это позволит мне отладить то, что идет не так.

решение1

Подводя итог вышеизложенным комментариям, можно сказать, что ответ на эту проблему представляет собой двухэтапный процесс:

Сначала определите MIME-тип файла:

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

Затем получите приложение по умолчанию, связанное с этим типом:

xdg-mime query default "$MIMETYPE"

Таким образом, тип пантомимы может бытьтекст/x-pythonнапример, и приложение будетgedit.desktopв моей системе.

Вы также можете сделать это в одну строку:

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

Связанный контент