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


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.