Найти приложение по умолчанию для определенного расширения

12

Учитывая xdg-open и расширение, есть ли способ получить приложение, для которого установлено xdg-open для этого конкретного расширения?

Например дано xdg-openи .jpgрезультат есть eog.

sjsam
источник
1
Какую ОС вы используете?
Heemayl
Это Ubuntu Trusty.
sjsam

Ответы:

13

AFAIK выбор действия основан на mimetype файла, а не на его расширении.

По крайней мере, в Ubuntu вы сможете использовать queryдействие, xdg-mimeчтобы показать приложение по умолчанию для определенного mimetype.

$ xdg-mime query default image/jpeg
eog.desktop

Вы можете проверить MIME-тип для конкретного файла, используя, xdg-mime query filetypeнапример,

$ xdg-mime query filetype kqDRdnW.jpg
image/jpeg

или с помощью fileкоманды, напримерfile --mime-type <file>

Смотрите man xdg-mimeдля дальнейшей информации об использовании.

steeldriver
источник
Вероятно, стоит упомянуть ОП, что вы можете получить mime-тип для jpeg-типа xdg-mime query filetype <file_you_want_the_mimetype_of>
файла
@the_velour_fog хорошая идея - добавлено
стальная водитель
К сожалению xdg-mime query default, не всегда работает, если xdg-openпросто вызывает базовый инструмент (например pcmanfm); пример, который вы использовали в своем ответе, ничего не возвращает в моей системе LXDE.
Стивен Харрис
Спасибо, я бы пошел первый вариант здесь,var="xdg-mime query default image/jpeg" && $(${var%.desktop})
sjsam
5

Чтобы запросить 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
FarazX
источник
Это не ограничено rpmоснованными системами; это часть стандартного рабочего стола и работает на Debian (например). К сожалению, это как установить значение по умолчанию; здесь не сказано, как найти какое значение установлено. И xdg-mime query defaultне всегда сообщает, что он будет делать, если вызовет xdg-openбазовую настольную программу (например, pcmanfmна LXDE).
Стивен Харрис
@ StefhenHarris Я думал, что варианты могут быть разными. Спасибо, что сказал мне.
FarazX
Это должен быть принятый ответ.
Навигаид