Como abrir o arquivo com programa padrão na linha de comando?

10

Se eu clicar em um arquivo em um explorador de arquivos da GUI, um programa padrão será usado para abri-lo. Isso é útil para arquivos que não sei abrir na linha de comando.

Existe uma maneira de abrir um arquivo com o programa padrão usando a linha de comando?

Como alternativa, existe uma maneira, dada uma extensão de arquivo, de determinar um comando para abri-lo?

Gradiente
fonte

Respostas:

15

Existe uma maneira de abrir um arquivo com o programa padrão usando a linha de comando?

Este é um trabalho para xdg-open:

O xdg-open abre um arquivo ou URL no aplicativo preferido do usuário. Se um URL for fornecido, o URL será aberto no navegador da web preferido do usuário. Se um arquivo for fornecido, o arquivo será aberto no aplicativo preferido para arquivos desse tipo. O xdg-open suporta URLs de arquivo, ftp, http e https.

  • Sintaxe para abrir um arquivo com seu aplicativo padrão:

    xdg-open {file}
    

O xdg-open vem pré-instalado no Ubuntu.

Como alternativa, existe uma maneira, dada uma extensão de arquivo, de determinar um comando para abri-lo?

Pela extensão, não. O aplicativo padrão é escolhido com base no tipo MIME, não na extensão. O Linux não possui "extensões".

Para um arquivo específico, você pode usar xdg-mimepara determinar o tipo MIME do arquivo e o aplicativo padrão associado a ele:

  • Sintaxe para exibir o tipo MIME de um arquivo:

    xdg-mime query filetype {file}
    
  • Sintaxe para exibir o aplicativo padrão do tipo MIME:

    xdg-mime query default {mimetype}
    
  • Sintaxe para exibir o aplicativo padrão de um arquivo:

    xdg-mime query default "$(xdg-mime query filetype {file})"
    

Como solução alternativa (hacky), você pode usar o comando

xdg-mime query default \
    `xdg-mime query filetype "$(find ~ / -iname '*.png' -print -quit)"`

para exibir o aplicativo padrão para, por exemplo, imagens PNG.

Isso funcionará se, e somente se, você tiver uma imagem PNG no computador e o primeiro arquivo encontrado terminar com .pnguma imagem PNG válida.

Dennis
fonte
Exatamente o que eu estava procurando! Você sabe se o xdg-open pode informar o comando usado para abrir, por exemplo, arquivos PNG?
Gradiente
Eu atualizei minha resposta.
Dennis