¿Cómo abrir un archivo con el programa predeterminado desde la línea de comandos?

10

Si hago clic en un archivo en un explorador de archivos GUI, se utiliza un programa predeterminado para abrirlo. Esto es útil para archivos que no sé cómo abrir desde la línea de comandos.

¿Hay alguna manera de abrir un archivo con el programa predeterminado usando la línea de comandos?

Alternativamente, ¿hay alguna forma, dada una extensión de archivo, para determinar un comando para abrirlo?

Degradado
fuente

Respuestas:

15

¿Hay alguna manera de abrir un archivo con el programa predeterminado usando la línea de comandos?

Este es un trabajo para xdg-open:

xdg-open abre un archivo o URL en la aplicación preferida del usuario. Si se proporciona una URL, la URL se abrirá en el navegador web preferido del usuario. Si se proporciona un archivo, el archivo se abrirá en la aplicación preferida para archivos de ese tipo. xdg-open admite archivos, ftp, http y https URL.

  • Sintaxis para abrir un archivo con su aplicación predeterminada:

    xdg-open {file}
    

xdg-open viene preinstalado en Ubuntu.

Alternativamente, ¿hay alguna forma, dada una extensión de archivo, para determinar un comando para abrirlo?

Por la extensión, no. La aplicación predeterminada se elige según el tipo MIME, no la extensión. Linux no tiene "extensiones".

Para un archivo específico, puede usar xdg-mimepara determinar tanto el tipo MIME del archivo como la aplicación predeterminada asociada a él:

  • Sintaxis para mostrar el tipo MIME de un archivo:

    xdg-mime query filetype {file}
    
  • Sintaxis para mostrar la aplicación predeterminada del tipo MIME:

    xdg-mime query default {mimetype}
    
  • Sintaxis para mostrar la aplicación predeterminada de un archivo:

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

Como solución alternativa (hacky), puede usar el comando

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

para mostrar la aplicación predeterminada para, por ejemplo, imágenes PNG.

Esto funcionará si y solo si tiene una imagen PNG en su computadora y el primer archivo encontrado que termina con .pnguna imagen PNG válida.

Dennis
fuente
¡Exactamente lo que estaba buscando! ¿Sabe si xdg-open puede indicar el comando utilizado para abrir, por ejemplo, archivos PNG?
Gradiente el
He actualizado mi respuesta.
Dennis