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

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

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

NAME       xdg-open - opens a file or URL in the user's preferred applicationSYNOPSIS       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 были признаны устаревшими и могут быть недоступны в будущих выпусках).

xdg-open и gnome-open

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

Если вы хотите:

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

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

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

Существует аналогичный вопрос, касающийся запуска браузера по умолчанию из командной строки: command line - How to launch default web browser from the terminal? - Ask Ubuntu

Это действительно блестящий вопрос! За почти 4 года моего “избиения” я ни разу не думал об этом : P