Відповіді:
AFAIK вибір дії базується на міметиці файлу, а не на його розширенні.
Принаймні, на Ubuntu, ви повинні мати можливість використовувати queryдію, xdg-mimeщоб показати програму за замовчуванням для певного міметипу
$ xdg-mime query default image/jpeg
eog.desktop
Ви можете перевірити mimetype для певного файлу, використовуючи xdg-mime query filetypeнапр
$ xdg-mime query filetype kqDRdnW.jpg
image/jpeg
або за допомогою fileкоманди, наприкладfile --mime-type <file>
Див. man xdg-mimeДодаткову інформацію про використання.
xdg-mime query filetype <file_you_want_the_mimetype_of>
xdg-mime query default, не завжди спрацьовує, якщо xdg-openпросто викликати основний інструмент (наприклад pcmanfm); приклад, який ви використовували у своїй відповіді, нічого не повертає в моїй системі LXDE.
var="xdg-mime query default image/jpeg" && $(${var%.desktop})
Для запиту типу mime, який використовується наявним файлом за допомогою xdg-utils, він працює як:
$ xdg-mime query filetype yourfile.xxx
Ви також можете встановити новий за замовчуванням, наприклад, змінити пов'язаний запис на робочому столі, встановивши Thunar - сучасний файловий менеджер для Xfce Desktop Environment - як браузер файлів за замовчуванням, який слід ввести:
$ xdg-mime default Thunar.desktop inode/directory
Або, наприклад, для встановлення програми за замовчуванням для http(s)://інтернет-протоколів, ви можете використовувати:
$ xdg-mime default midori.desktop x-scheme-handler/http
OR
$ xdg-mime default midori.desktop x-scheme-handler/https
rpmсистемами, що базуються; це частина стандартного робочого столу і працює на Debian (наприклад). На жаль, це спосіб встановити значення за замовчуванням; не сказано, як знайти, яке значення встановлено. І xdg-mime query defaultне завжди повідомляється про те, що це буде робити, якщо xdg-openзателефонувати на базову програму настільних ПК (наприклад, pcmanfmна LXDE).