Чи існує команда «відкрити з» для командного рядка?


24

Чи є в командному рядку спосіб отримати рекомендований список програм, які використовуються для відкриття певного файлу, виходячи з типу файлу? Наприклад, .pdfфайл містить open with...рекомендації з використанням програм Evinceі Document Viewer.

Я використовую командний рядок для більшості речей, але іноді забуваю назву програми, яку я хочу використовувати для відкриття певного типу файлів.

До речі, я використовую Ubuntu 13.10.

підказка

Завдяки обраній нижче відповіді @slm, я створив наступний скрипт bash у файлі під назвою openwith.sh:

xdg-mime query default $(xdg-mime query filetype $1)

Додати як псевдонім або виконати безпосередньо як openwithкоманду.


1
Можна спробувати gnome-open file. Я додав alias o='gnome-open'до моєї .bashrcдля простоти.
Pål GD

gnome-openпрацює аналогічно xdg-open.
slm

Мабуть, так і робиться gvfs-open. Запитання Що я можу використовувати замість gnome-open? від ask ubuntu .
Pål GD

Відповіді:


33

Я ніколи не бачив команди, яка буде діяти як "відкрити з ...", але ви можете використовувати команду, xdg-open <file>щоб відкрити задану <file>програму, пов’язану з певним типом файлу.

Приклади

Відкриття текстового файлу:

$ xdg-open tstfile.txt
$

В результаті в файлі tstfile.txtвідкриваються в gedit:

                         ss gedit

Відкриття документа LibreOffice Writer:

$ xdg-open tstfile.odt 
$

У результаті відкриття файлу tstfile.odtв програмі Writer:

                         ss письменника

Які програми звикають?

Ви можете скористатись xdg-mimeзапитом у системі, щоб дізнатися, які програми пов’язані із заданим типом файлу.

$ xdg-mime query default $(xdg-mime query filetype tstfile.txt)
gedit.desktop calibre-ebook-viewer.desktop

$ xdg-mime query default $(xdg-mime query filetype tstfile.odt)
libreoffice-writer.desktop calibre-ebook-viewer.desktop

Це двоетапна операція. Спочатку я запитую мім-тип даного файлу xdg-mime query filetype tstfile.txt, який повернеться text/plain. Потім він використовується для іншого пошуку для пошуку списку програм, пов’язаних із цим типом mime. Як ви бачите вище, у мене пов’язано 2 програми geditта calibreдля .txtфайлів.

Ви також можете xdg-mimeзмінити асоціації. Докладніше man xdg-mimeдив.


Чи існує спосіб відображення інших програм, крім програм за замовчуванням? Наприклад, я щойно встановлений okularдля перегляду PDF-файлів, але ваш приклад вище відображається лише evinceтоді, коли я запускаю його у файлі .pdf.
modulitos

1
@Lucas - так, приклади, які я показав, показують додатки, пов’язані з даним типом файлів вище. Для екс. Файли типу .txtпов'язані, наприклад, з gedit та caliber.
slm

Чи потрібно мати .desktopфайли для програм, які я хочу перелічити? Наприклад, коли я запускаю скрипт у .pdfфайл, він повертається evince.desktop, хоча я також можу запуститись okular.
modulitos

@Lucas - це, мабуть, найкраще запитується як новий Q, оскільки ми зараз кричимо від початкового Q.
slm

5

Якщо ви в основному працюєте в командному рядку, ви можете подивитися на файловий менеджер на основі прокльонів, наприклад, рейнджер або vifm . Обидва дозволяють визначити дії за замовчуванням для файлів.

Наприклад, у vifm, ~/.vifm/vifmrcви можете визначити такі асоціації:

" Images
filetype *.jpg,*.jpeg,*.gif,*.tif,*.png,*.bmp sxiv 

" Media
filetype *.flv,*.avi,*.mp4,*.mpeg,*.mpg,*.mov,*.ogg,*.ogv,*.mkv mpv 

" Web
filetype *.html,*.htm,*.shtml /home/jason/Scripts/vimprobtab.sh 

" PDF
filetype *.pdf apvlv

Якщо натиснути Enterкурсор на будь-який файл із одним із визначених дій, він відкриється відповідною програмою. Як ви бачите у випадку з .htmlфайлами, ви можете запустити сценарій, а також додаток.


5

Сортування, але це змінить вашу програму за замовчуванням у результаті. Я не впевнений, в яких інших операційних системах працює ця робота, але інструкції нижче працюють для Ubuntu 12.04 - Desktop X86-64. У мене не було підручних файлів у форматі PDF, тому я перевірив архів .zip.

Загальні кроки

Крок 1

У термінальному типі:

$ mimeopen -d /home/username/example.zip
скріншот №1 = https://copy.com/qfWSZaZ4FzlA

    ss №1

Крок №2

Виберіть зі списку, ввівши #потрібну програму та натисніть enter. Файл одразу відкриється у вибраній вами програмі.

скріншот №2 = https://copy.com/um6Rf7zRdceT

    ss №2

скріншот №3 = https://copy.com/ytwKCqR6nv8i

    ss №3

Примітки

Примітка №1

Це змінює програму за замовчуванням на ту, яку ви вибрали, і тому кожного разу, коли ви відкриєте цей тип файлу, тепер він відкриється в будь-якій програмі, яку ви останній раз вибрали зі списку.


Ви мали намір поставити хеш-знак (#) в URL-адресу екрана 3?
трис

@trysis Я просто використовував це, щоб обійти максимальну кількість URL-адрес.
видаліть мене,

О, має сенс. Але все ще дивно виглядає.
трис

Я очистив вас A і додав для вас 3-ю URL-адресу.
slm

2

Я думаю, залежить від аромату Unix, який ви використовуєте. В OS X можна використовувати openкоманду:

OPEN(1)                   BSD General Commands Manual                  OPEN(1)

NAME
     open -- open files and directories

SYNOPSIS
     open [-e] [-t] [-f] [-F] [-W] [-R] [-n] [-g] [-h] [-b bundle_identifier]
          [-a application] file ... [--args arg1 ...]

DESCRIPTION
     The open command opens a file (or a directory or URL), just as if you had
     double-clicked the file's icon. If no application name is specified, the
     default application as determined via LaunchServices is used to open the
     specified files.

     If the file is in the form of a URL, the file will be opened as a URL.

...

Також openкоманда вперше з'явилася в NextStep і успадкувала OS X, тому вона може бути доступною в якійсь формі на інших більш-менш платформах на основі OpenStep (наприклад, AfterStep, LiteStep).
Іонокласт Брігхем
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.