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.
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-mime
pour 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 .png
est une image PNG valide.