14

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

cd dropbox/dev/currentProject



-root
  -dropbox
     -dev
        -currentProject

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

7 ответов7

21

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

Например, как только вы cd - диск «d в каталог currentProject несколько раз, вы можете перейти к нему , как это:

j currentProject

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

j current

Чтобы cd в currentProject .

8

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

export CDPATH=$HOME

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

Больше

7

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

5

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

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 (возможно, при необходимости создавая список добавления из списка дерева каталогов).

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .