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

Для маркировки файловой системы, так же чисто размонтированной, не делая файлы на нем недоступными, повторно смонтируйте его как только для чтения:

mount -o remount,ro /mount/point

Это может быть сделано, даже если существуют файлы, открытые для чтения, рабочих исполняемых файлов, текущих каталогов или активных точек монтирования в той файловой системе. Только файлы, открытые для записи, предотвращают перемонтирование, только для чтения.

4
21.11.2018, 00:38
3 ответа

Действительно нет централизованного ресурса, который можно просто "запросить" для достигания этой информации. Скорее это сохраняется в нескольких текстовых файлах, которые можно или вручную проанализировать, если Вы знаете, где посмотреть, или можно использовать инструмент xdg-mime создать отношения.

Пример

Скажите, что у меня есть файл PNG на диске. Я могу узнать его тип MIME как это.

$ xdg-mime query filetype DSCN4747_DSCN4061_800x600.PNG 
image/png

Я могу затем запросить xdg-mime выяснение у него, что ассоциация для этого конкретного типа MIME.

$ xdg-mime query default image/png
shotwell-viewer.desktop shutter.desktop

Просмотр mimeinfo.cache в моей системе я могу узнать немного больше об ассоциациях для данного типа MIME с помощью следующей команды:

$ grep 'image/png' /usr/share/applications/mimeinfo.cache 
image/png=shutter.desktop;gpicview.desktop;gimp.desktop;eog.desktop;geeqie.desktop;shotwell-viewer.desktop;

Настольные определения в mimeinfo.cache файл хранится здесь:

$ locate shotwell-viewer.desktop
/usr/share/applications/shotwell-viewer.desktop

И это содержит название исполняемых файлов, о которых Вы спрашиваете:

$ grep 'Exec=' !$
grep 'Exec=' /usr/share/applications/shotwell-viewer.desktop
Exec=shotwell %f

Часто времена, если я просто хочу запустить что-то, я буду использовать инструмент xdg-open <file|URL> открыть файл, а не пойти и запустить приложение сначала и затем открыть файл.

Ссылки

4
27.01.2020, 20:49

Ваш локальный файл конфигурации

~/.local/share/applications/mimeapps.list

глобальный файл конфигурации

/usr/share/applications/mimeinfo.cache

Простой макет с sed,

sed -e 's/=/\n\t/' -e 's/;/\n\t/g' /usr/share/applications/mimeinfo.cache

Вывод в качестве примера,

...
image/x-xwindowdump*
    gimp.desktop
video/flv
    totem.desktop
    avidemux-gtk.desktop

application/vnd.sun.xml.math
    openoffice.org-math.desktop
application/vnd.scribus
    scribus.desktop
...
4
27.01.2020, 20:49

https://askubuntu.com/questions/16580/where-are-file-associations-stored говорит о том, как ассоциации работают и инструменты для обновления их. В Linux ключевое слово, которое Вы ищете, является "mimetype".

У группы Freedesktop, которая разработала стандарты, используемые KDE, GNOME и другими, есть инструменты для осмотра и запуска приложений на основе их типов пантомимы. Посмотрите на страницу справочника для xdg-mime и xdg-open. Они только работают в рамках активной настольной сессии. Иметь это в виду.

1
27.01.2020, 20:49

Теги

Похожие вопросы