Существует ли команда для возвращения многих шагов в каталоге, не используя CD?

Я постоянно иду 'CD../../../.. /'. Существует ли команда/псевдоним, которая могла позволить мне пойти 'cmd 4', и я был бы забран 4 каталога?

14
задан 05.08.2011, 05:23

0 ответов

Вставьте это Ваш ~/.bashrc:

cdup() {
  levels=${1-1}
  while ((levels--)); do
    cd ..
  done
}

(Имя cdup прибывает из соответствующей команды FTP, просто к вашему сведению.)

16
ответ дан 07.12.2019, 11:11

Мне преподавали использовать 'pushd' и 'popd' для таких обстоятельств.

Например, введите 'pushd'. и затем 'CD / домой'. Теперь введите 'popd', и Вы вернетесь туда, где Вы запустили.

'pushd'/'popd' является стеком, можно продвинуть как много каталогов на там как Вам угодно, но это является последним на, прежде всего когда Вы popd.

11
ответ дан 07.12.2019, 11:11

Несомненно, почему нет:

up() {
    [ $# = 0 ] && cd .. && return
    [ $1 = 0 ] && return
    cd .. && up $(($1 - 1))
}
10
ответ дан 07.12.2019, 11:11

Быстрый и грязный:

cmd () { dir=.; for i in $(seq 1 $1); do dir=$dir/..; done; pushd $dir; }

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

4
ответ дан 07.12.2019, 11:11

Вот альтернативный путь:

function cdup
{
    cd $(for ((i=0 ; i<$1 ;i++)); do printf "../" ; done)
}
2
ответ дан 07.12.2019, 11:11

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

Вы могли также установить переменную с названием каталога, Вы используете много, затем CD там:

MYPROJ=~/projects/name/src
cd $MYPROJ
proj1='cd $MYPROJ'
1
ответ дан 07.12.2019, 11:11

Я использую автопереход, которые позволяют мне вводить:

j h
>> /home/cjulien
j et
>> /etc

это может извлечь уроки из Ваших привычек и очень легко (и захватывающе ;))

1
ответ дан 07.12.2019, 11:11

Две мысли, которые могли бы быть полезны для Вас:

  1. CD -
    возвратитесь к последнему каталогу, в котором Вы были. Я использую это все время для получения от в глубине души в моем дереве кода назад к корню его..., хотя это только работает если Вы cd'd вниз в него в одном изменении.

  2. cdd, старый новый
    это было функцией сценария, я записал в прошлом, что использовал для того, чтобы переместиться между подобными деревьями. В основном это взяло два аргумента и сделало regexp на Вашем пути, большом для того, чтобы переместиться между ответвлениями и таким. Например, если бы Вы были в ~/bzr/web/trunk/path/to/feature и должны были добраться до ~/bzr/web/feature-branch/path/to/feature затем, то Вы сделали бы cdd trunk feature-branch. Реализация, которую я имел, была на архаичном языке оболочки на AIX, но это было довольно тривиально, так должно быть легко реализовать в предпочтительной оболочке, если Вам нужен он. Для нас это было очень полезно, потому что структура была похожа:.../{продукт} / {версия} / {выпуск} / {src, строение, dbg, pkg, tst} / {компонент}/... настолько перемещающийся в том дереве стал безумным довольно быстрый.

0
ответ дан 07.12.2019, 11:11

Теги

Похожие вопросы