Como obter uma lista de aplicativos associados a um arquivo usando a linha de comando

3

As associações de arquivos geralmente são feitas no ambiente de área de trabalho, mas como obter uma lista de aplicativos associados a um arquivo usando a linha de comando?

Algo como:

$ getassoc foo.pdf <CR>
$ acroread, okular

Não precisa ser um comando, pode um cat + grep em qualquer arquivo do Gnome

Estou usando o Gnome 2.28.2.

    
por Rodrigo Gurgel 07.02.2014 / 19:15

3 respostas

3

Não existe realmente um recurso centralizado que você possa apenas "consultar" para obter essas informações. Em vez disso, ele é mantido em alguns arquivos de texto que você pode analisar manualmente se souber onde procurar ou usar a ferramenta xdg-mime para construir os relacionamentos.

Exemplo

Digamos que eu tenha um arquivo PNG no disco. Eu posso descobrir o seu tipo MIME assim.

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

Eu posso então consultar xdg-mime perguntando qual é a associação para esse tipo MIME em particular.

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

Olhando através do mimeinfo.cache no meu sistema eu posso descobrir um pouco mais sobre associações para um dado tipo MIME usando o seguinte comando:

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

As definições da área de trabalho no arquivo mimeinfo.cache são armazenadas aqui:

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

E contém o nome dos executáveis que você está perguntando:

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

Muitas vezes, se eu quiser lançar algo, usarei a ferramenta xdg-open <file|URL> para abrir um arquivo, em vez de lançá-lo primeiro e depois abrir o arquivo.

Referências

por 07.02.2014 / 20:16
1

Seu arquivo de configuração local

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

arquivo de configuração global

/usr/share/applications/mimeinfo.cache

Layout simples com sed,

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

Exemplo de saída,

...
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
...
    
por 07.02.2014 / 19:55
1

link fala sobre como as associações funcionam e as ferramentas para atualizá-las. No Linux, a palavra-chave que você está procurando é "mimetype".

O grupo Freedesktop, que elaborou padrões usados pelo KDE, GNOME e outros, tem ferramentas para inspecionar e iniciar aplicativos com base em seus tipos MIME. Veja a man page para xdg-mime e xdg-open . Estes só funcionam dentro de uma sessão de área de trabalho ativa. Tenha isso em mente.

    
por 07.02.2014 / 19:57