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

14

Есть ли способ перейти в любой каталог из любого другого каталога напрямую? Например, предположим, что я нахожусь в корне, и я хотел перейти непосредственно к currentProject, не делая :

cd dropbox/dev/currentProject



-root
  -dropbox
     -dev
        -currentProject

Есть ли способ сделать это?

абажур
источник

Ответы:

21

Вы можете использовать что-то вроде autojump . Autojump позволяет быстро перейти к часто посещаемым каталогам с помощью jкоманды.

Например, как только вы несколько раз cdзаходите в свой currentProjectкаталог, вы можете перейти к нему следующим образом:

j currentProject

Вы даже можете использовать только часть имени каталога. Так что вы могли бы сделать:

j current

Чтобы cdв currentProject.

Wuffers
источник
8

Вы также можете добавить некоторые общие каталоги к вашему $ CDPATH

export CDPATH=$HOME

Это, например, позволит вам cd в любой каталог в вашей домашней папке из любой точки вашей системы.

Больше

Яб
источник
7

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

Абе Воелкер
источник
1
Смотрите также: tmux .
Анника Бэкстрем
5

Вы можете установить псевдоним в своем профиле bash. По сути, это позволяет сокращать команду словом. Вы можете установить currentProject на самом деле указать / dropbox / dev / currentProject

n0pe
источник
4

Вы можете создать символические ссылки в вашем домашнем каталоге, куда вы хотите перейти.

ln -s /dropbox/dev/currentProject ~/currentProject

Таким образом, вы все еще используете CD, но вам не нужно запоминать полный путь. Просто используйте:

cd ~/currentProject

Когда вы прекратите использовать ссылку, просто удалите ее.

rm ~/currentProject
Крис Тинг
источник
0

Как уже упоминалось выше, Wuffers , autojump, который может сделать это для вас. Он хранит базу данных о ранее посещенных каталогах и позволяет вам использовать команду как j <a few letters in the directory path>для перехода в этот каталог. Для autojump с именем есть дополнительная команда, jcкоторая должна соответствовать вашим требованиям. jcпозволяет перейти к ранее посещенному подкаталогу текущего рабочего каталога. Таким образом, вам нужно только посетить каталог один раз, чтобы это работало, пока вы не очистите базу данных autojump. Кроме того, вы также можете добавить его напрямую вместо этого autojump --add DIR(возможно, создавая список добавления из списка дерева каталогов, если это необходимо).

Snap Shot
источник
0

В bash и * csh есть встроенные команды «pushd» и «popd», которые позволяют помещать pushd [directory]каталоги в стек « Last In First Out» (с ), а затем быстро переходить в верхний каталог в стеке с помощью «popd». Таким образом, в зависимости от того, как вы загрузили стек, вы можете быстро быстро переходить между каталогами, чтобы это работало для вас.

Невин Уильямс
источник