web-dev-qa-db-fra.com

Comment ouvrir un fichier avec l'application par défaut en ligne de commande?

Dans Nautilus, lorsque vous double-cliquez sur un fichier, celui-ci s'ouvre avec l'application par défaut associée à l'extension du fichier. Par exemple, les fichiers .html s'ouvriront dans un navigateur Web et .pdf s'ouvrira avec Document Viewer. Existe-t-il un moyen de reproduire le même comportement à partir de la ligne de commande (c'est-à-dire open path/filename)? Je demande parce que j'aime parcourir mon système de fichiers à partir de la ligne de commande mais parfois ne me souviens plus quelle application. ouvre quoi.

175
Olivier Lalonde

Je pense que xdg-open est la commande que vous recherchez.

NAME
       xdg-open - opens a file or URL in the user's preferred application

SYNOPSIS
       xdg-open {file | URL}

       xdg-open {--help | --manual | --version}

DESCRIPTION
       xdg-open opens a file or URL in the user's preferred application. If a
       URL is provided the URL will be opened in the user's preferred web
       browser. If a file is provided the file will be opened in the preferred
       application for files of that type. xdg-open supports file, ftp, http
       and https URLs.

par exemple: xdg-open index.php

Cela ouvrira index.php dans gedit (si vous utilisez gnome).

Si vous voulez ouvrir une URL dans le navigateur

xdg-open http://google.com

cela ouvrira google.com dans votre navigateur par défaut.


xdg-open est un script de wrapper - il utilisera l'outil de l'environnement de bureau (gio open, gvfs-open, kde-open, gnome-open, dde-open, exo-open et un hôte d'autres outils similaires). Il est également installé par défaut et fonctionnera très probablement sur les versions antérieures, actuelles et futures (par contre, gvfs-open et gnome-open sont obsolètes et risquent de ne plus être disponibles dans les versions à venir).

227
aneeshep

xdg-open and gnome-open

xdg-open est le moyen le plus universel (fonctionne également sur KDE)

46
shellholic

Si tu veux:

  • créer un alias pour cette commande (par exemple, openname__)
  • masquer la sortie de la commande
  • continuer à utiliser ce terminal après

Vous pouvez utiliser ceci fonction. Bashrc :

function open () {
  xdg-open "$@">/dev/null 2>&1
}
13
Jesse Knight