9

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

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

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

1 ответ1

13

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

Это работа для 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .