Открыть текущий каталог из терминала в файловый браузер?


15

Мой текущий каталог находится глубоко в нескольких слоях подпапок из моего домашнего каталога. Если я хочу открыть этот каталог в графическом браузере на основе графического интерфейса , мне нужно дважды щелкнуть папку за папкой, чтобы добраться до нее. Это очень много времени. С другой стороны, с очень небольшим количеством нажатий клавиш и несколькими нажатиями на кнопку табуляции, к нему очень легко добраться через терминал.

Я хочу знать, есть ли способ открыть текущий каталог в терминале в файловом браузере. Какова команда, чтобы сделать это?

Для справки, у меня есть система Ubuntu, но я хотел бы знать, какие команды используются в различных дистрибутивах Linux.


2
Это действительно зависит от того, какую операционную систему и среду графического интерфейса вы используете. Например, в верхней части моей головы, в системе OS X, open /path/to/some/directoryоткроется окно Finder для этого каталога. В Windows это какой-то вызов explorer.exe In KDE, GNOME или LXDE, возможно, есть заклинания, уникальные для каждой среды, которые можно использовать. Короче говоря, для вашего конкретного случая использования требуется больше деталей.
— DopeGhoti

Это будет зависеть от конкретного "проводника файлов" или используемой вами системы управления окнами. Для справки, в Mac OS X open .откроется окно Finder в текущем каталоге. Аналогичная команда может существовать в вашей системе.
— дхаг

Вы должны отредактировать свой вопрос, чтобы указать, какой графический файловый проводник вы используете / хотите использовать.
— Энтони Геогеган

@drewbenn: я бы опубликовал это как ответ, так как это будет работать для разных сред.
— saiarcot895

Ответы:


26

xdg-open .

xdg-open является частью пакета xdg-utils , который обычно устанавливается по умолчанию во многих дистрибутивах (включая Ubuntu). Он предназначен для работы в нескольких средах рабочего стола, вызывая обработчик по умолчанию для типа файла в среде рабочего стола.

Вы можете передать каталог, файл или URL , и он откроет соответствующую программу для этого параметра. Например, в моей системе KDE:

  • xdg-open . открывает текущий каталог в файловом менеджере Dolphin
  • xdg-open foo.txt открывает файл foo.txt в emacsclient, который я настроил как обработчик по умолчанию для файлов .txt
  • xdg-open http://www.google.com/ открывает google.com в моем браузере по умолчанию

Приложение открывается в виде отдельного окна, и вы получите подсказку обратно в свой терминал и сможете выполнять другие команды или закрывать свой терминал, не затрагивая новое окно графического интерфейса пользователя.

Я обычно получаю кучу сообщений об ошибках stderr, но я просто игнорирую их.

Редактировать:
добавление аргументов xdg-open . >/dev/null 2>&1перенаправляет ошибки и вывод. Этот звонок не заблокирует ваш терминал. Привязка этого к псевдониму filemanager='xdg-open . >/dev/null 2>&1'может пригодиться.


Golden. Спасибо
— Адиль Саджу

9

Практически любое приложение с графическим интерфейсом (в системах X Window) можно открыть из окна терминала в этом графическом интерфейсе. Чтобы открыть любое приложение с графическим интерфейсом, введите имя исполняемого файла в командной строке. Большинство файловых браузеров принимают каталог в качестве аргумента командной строки, поэтому обычно вы должны передавать его .в качестве параметра.

Вот несколько примеров для некоторых популярных систем, большинство систем на основе X работают аналогично.

В Gnome вы можете запустить nautilus(браузер файлов по умолчанию) напрямую, или в Gnome 2 вы можете использовать gnome-openдля открытия любого файла (включая каталоги) с помощью настроенного приложения-обработчика файлов Gnome:

$ nautilus .

или

$ gnome-open .

В KDE есть два популярных файловых браузера, я не знаю, какая команда похожа gnome-open, хотя gnome-openможет быть выполнена в KDE, но по умолчанию она открывает приложения Gnome.

$ dolphin .

или

$ konquerer .

На OS X , как упоминалось в комментариях, может использоваться аналогичная программа командной строки open.

$ open .

Что если вы не знаете имя исполняемого файла браузера вашей системы?

Если на Gnome 2, используйте gnome-open .If на OS X, позвоните open .. Каждый из них выполнит настроенный файловый браузер для вашей графической среды.

Если вы не знаете такой команды в своей оконной системе, вот один из способов выяснить это в системах с psкомандой, которая понимает параметры -u USERи -o FORMAT:

  1. В окне терминала введите ps -u$USER -o comm > /tmp/$$A
  2. В вашем графическом интерфейсе запустите браузер файлов.
  3. Вернувшись в окно терминала, введите ps -u $USER -o comm > /tmp/$$B(обратите внимание на Bсуффикс, это файл, отличный от шага 1).
  4. Также в терминале введите diff /tmp/$$[AB].

Должно отображаться название вашего файлового браузера. Возможно, вы могли видеть более одного имени, если другая программа запускалась под вашим идентификатором во время между вызовами ps.

Например:

$ ps -u $USER -o comm > /tmp/$$A
$ # open file browser in gui
$ ps -u $USER -o comm > /tmp/$$B
$ diff /tmp/$$[AB]
95a96
> nautilus

Если вы не знаете, какой файловый браузер есть в вашей системе, как вы можете узнать это из командной строки?
— Пол

@ Пол, пожалуйста, смотрите обновленный ответ. Благодарю.
— RobertL

2

nautilusНасколько я помню, Ubuntu использует файловый браузер по умолчанию . Поэтому, чтобы открыть определенную папку из терминала, вы можете напечатать что-то вроде следующего:

nautilus /path/to/your/dir

или

cd /path/to/your/dir && nautilus .

nautilusавтоматически отключается от терминала, к которому он был вызван, но предположим, что вы используете другой файловый браузер и хотите закрыть терминал, с которого вы вызвали свой файловый браузер, вы можете использовать его nohupдля этого. Если вы используете, скажем, thunar(другой файловый браузер), вы можете ввести следующее:

nohup thunar /path/to/your/dir & exit

-1

Просто используйте gio open

Используйте -

gio open .
gio open example/

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.