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

10

Если я щелкаю файл в проводнике GUI, для его открытия используется программа по умолчанию. Это полезно для файлов, которые я не знаю, как открыть из командной строки.

Есть ли способ открыть файл с программой по умолчанию, используя вместо этого командную строку?

В качестве альтернативы, есть ли способ, с учетом расширения файла, определить команду, чтобы открыть его?

градиент
источник

Ответы:

15

Есть ли способ открыть файл с программой по умолчанию, используя вместо этого командную строку?

Это работа для xdg-open:

xdg-open открывает файл или URL в предпочтительном приложении пользователя. Если указан URL-адрес, он будет открыт в предпочтительном веб-браузере пользователя. Если файл предоставлен, файл будет открыт в предпочтительном приложении для файлов этого типа. xdg-open поддерживает URL-адреса файлов, ftp, http и https.

  • Синтаксис для открытия файла в приложении по умолчанию:

    xdg-open {file}
    

xdg-open предустановлен в Ubuntu.

В качестве альтернативы, есть ли способ, с учетом расширения файла, определить команду, чтобы открыть его?

По расширению нет. Приложение по умолчанию выбирается на основе типа MIME, а не расширения. У Linux нет «расширений».

Для конкретного файла вы можете использовать xdg-mimeдля определения как MIME-типа файла, так и приложения по умолчанию, связанного с ним:

  • Синтаксис для отображения MIME-типа файла:

    xdg-mime query filetype {file}
    
  • Синтаксис для отображения приложения по умолчанию типа MIME:

    xdg-mime query default {mimetype}
    
  • Синтаксис для отображения файла приложения по умолчанию:

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

В качестве (хакерского) обходного пути вы можете использовать команду

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

для отображения приложения по умолчанию, например, для изображений PNG.

Это будет работать, если и только если у вас есть изображение PNG на вашем компьютере, и первый найденный файл, заканчивающийся на, .pngявляется действительным изображением PNG.

Деннис
источник
Именно то, что я искал! Знаете ли вы, может ли xdg-open указать команду, используемую для открытия, например, файлов PNG?
Градиент
Я обновил свой ответ.
Деннис