Чи є спосіб відкрити файл із програмою за замовчуванням, використовуючи замість цього командний рядок?
Це робота для xdg-open
:
xdg-open відкриває файл або URL-адресу в бажаному додатку користувача. Якщо вказано URL-адресу, URL-адреса буде відкрита у бажаному веб-переглядачі користувача. Якщо файл надано, файл буде відкрито в бажаній програмі для файлів цього типу. xdg-open підтримує URL-адреси файлів, ftp, http та https.
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.