Как открыть файл с приложением по умолчанию из командной строки?

179

В Nautilus, когда вы дважды щелкните файл, он откроет его с приложением по умолчанию, связанным с расширением файла. Например, файлы .html откроются в веб-браузере, а файл .pdf откроется в средстве просмотра документов. Есть ли способ воспроизвести такое же поведение из командной строки (то есть open path/filename)? Я спрашиваю, потому что мне нравится просматривать мою файловую систему из командной строки, но иногда не помню, какое приложение. открывает что.

Оливье Лалонд
источник
Есть аналогичный вопрос относительно запуска браузера по умолчанию из командной строки: askubuntu.com/questions/8252/…
kounryusui
Это действительно блестящий вопрос! Почти за 4 года моей жизни bashя не думал об этом: П
Джон Струд

Ответы:

233

Я думаю, xdg-openэто команда, которую вы ищете.

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.

например: xdg-open index.php

Это откроет index.php в gedit (если вы используете gnome).

Если вы хотите открыть URL в браузере

xdg-open http://google.com

это откроет google.com в вашем браузере по умолчанию.


xdg-openскрипт - обертка - он будет использовать инструмент среды рабочего стола ( в gio open, gvfs-open, kde-open, gnome-open, dde-open, exo-open, и множество других подобных инструментов). Он также устанавливается по умолчанию, и очень вероятно , будет работать на прошлых, текущих и будущих версиях (с другой стороны, gvfs-openи gnome-openустарели, и могут быть недоступны в будущих версиях).

aneeshep
источник
2
На Gnome: gnome-openи на KDE: kde-openработает.
Фараманд
xde-openработал на XFCE, а также.
7
5
Самый простой способ сократить эту команду - использовать псевдоним. alias o='xdg-open', Поместите это в свой .bash_aliasesфайл, чтобы каждый раз загружать псевдоним при запуске. nano ~/.bash_aliasesа затем вставьте внутрь nanoс помощью CTRL+SHIFT+V.
anon58192932
46

xdg-open а также gnome-open

xdg-open это самый универсальный способ (работа также на KDE)

shellholic
источник
15

Если хочешь:

  • сделать псевдоним для этой команды (например open)
  • скрыть вывод из команды
  • продолжать использовать этот терминал после

Вы можете использовать эту функцию .bashrc :

function open () {
  xdg-open "$@">/dev/null 2>&1
}
Джесси Найт
источник