Comment ouvrir un fichier avec le programme par défaut à partir de la ligne de commande?

10

Si je clique sur un fichier dans un explorateur de fichiers GUI, un programme par défaut est utilisé pour l'ouvrir. Ceci est utile pour les fichiers que je ne sais pas ouvrir depuis la ligne de commande.

Existe-t-il un moyen d'ouvrir un fichier avec le programme par défaut en utilisant la ligne de commande à la place?

Sinon, existe-t-il un moyen, étant donné une extension de fichier, de déterminer une commande pour l'ouvrir?

Pente
la source

Réponses:

15

Existe-t-il un moyen d'ouvrir un fichier avec le programme par défaut en utilisant la ligne de commande à la place?

C'est un travail pour xdg-open:

xdg-open ouvre un fichier ou une URL dans l'application préférée de l'utilisateur. Si une URL est fournie, l'URL sera ouverte dans le navigateur Web préféré de l'utilisateur. Si un fichier est fourni, le fichier sera ouvert dans l'application préférée pour les fichiers de ce type. xdg-open prend en charge les URL de fichiers, ftp, http et https.

  • Syntaxe d'ouverture d'un fichier avec son application par défaut:

    xdg-open {file}
    

xdg-open est préinstallé dans Ubuntu.

Sinon, existe-t-il un moyen, étant donné une extension de fichier, de déterminer une commande pour l'ouvrir?

Par l'extension, non. L'application par défaut est choisie en fonction du type MIME et non de l'extension. Linux n'a pas "d'extensions".

Pour un fichier spécifique, vous pouvez utiliser xdg-mimepour déterminer à la fois le type MIME du fichier et l'application par défaut qui lui est associée:

  • Syntaxe d'affichage du type MIME d'un fichier:

    xdg-mime query filetype {file}
    
  • Syntaxe d'affichage de l'application par défaut du type MIME:

    xdg-mime query default {mimetype}
    
  • Syntaxe d'affichage de l'application par défaut d'un fichier:

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

Comme solution de contournement (hacky), vous pouvez utiliser la commande

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

pour afficher l'application par défaut pour, par exemple, les images PNG.

Cela fonctionnera si et seulement si vous avez une image PNG sur votre ordinateur et que le premier fichier trouvé se terminant par .pngest une image PNG valide.

Dennis
la source
Exactement ce que je cherchais! Savez-vous si xdg-open peut indiquer la commande utilisée pour ouvrir, par exemple, des fichiers PNG?
Gradient
J'ai mis à jour ma réponse.
Dennis