В терминале, как я могу определить ключ для перехода в предыдущий каталог, в котором я находился при смене каталога с помощью cd
команды?
Например, я в /opt/soft/bin
и я cd
в /etc/squid3
и я хочу , чтобы вернуться к первой директории.
В терминале, как я могу определить ключ для перехода в предыдущий каталог, в котором я находился при смене каталога с помощью cd
команды?
Например, я в /opt/soft/bin
и я cd
в /etc/squid3
и я хочу , чтобы вернуться к первой директории.
Ответы:
Вы можете использовать
cd -
или вы могли бы использовать
cd $OLDPWD
cd -
. Например, когда вы печатаете, cd /usr/local
вы знаете, что находитесь внутри /usr/loal
, но когда вы печатаете, cd -
вы не всегда помните, из какого каталога вы пришли. Так что это спасает вас от набора текста cd -; pwd
. Но это все домыслы.
alias -- -='cd -'
затем использовать -
(1 символ) вместо cd -
(4 символа). Быстрее:D
cd -
дважды. Как cd /; cd /usr; cd -; cd -
вы должны быть в /usr
. Но, может быть, я скучаю по твоему вопросу.
Другие ответы определенно полны в смысле прямого ответа. cd -
и cd $OLDPWD
, безусловно, основной выбор для этого. Тем не менее, я часто нахожу, что с работы pushd
и popd
работает лучше.
Короче говоря, если вы переходите в каталог с конечным намерением вернуться туда, откуда вы начали, используйте pushd
/ popd
.
Основное отличие легко показать на примере.
$ cd dir1
$ pushd dir2
На данный момент у вас есть стек каталогов, который есть dir2, dir1
. Запуск pushd
без аргументов вернет вас обратно в dir1
стек сейчас как dir1, dir2
. popd
сделал бы то же самое, но оставил бы вас с пустым стеком каталогов. Это не сильно отличается от того, как вы были бы с cd -
рабочим процессом.
Однако теперь вы можете менять каталоги несколько раз и вернуться к dir1
. Например,
$ cd dir1
$ pushd dir2
$ cd dir3
Если вы бежите popd
в этот момент, вы вернетесь к dir1
.
pushd
и возвращайтесь к предыдущей папке, popd
нажимая -ing.
dirs -v
, но реальность для меня заключается в том, что часто простой случай - это все, что я действительно использую. (Или, что еще хуже, я делаю ошибку, когда пытаюсь push +2
или что-то подобное) Кроме того, я подумал, что ребенок делает шаги, чтобы заставить кого-то попробовать рабочий процесс. :)
cd
на вершину стека без сования?
Вы должны использовать:
cd ~-
он делает то же, что и cd -
(из принятого в настоящее время ответа) без раздражающего эха каталога, и его легче набирать, чем cd "$OLDPWD"
или cd - > /dev/null
.
alias -- -='cd "$OLDPWD"'
используя -
(1 символ) вместо cd ~-
(5 символов). :)
cd ~-/..
работает, но cd -/..
нет!
Вы можете «определить ключ» для «cd -», отредактировав файл «~ / .bashrc» и добавив псевдоним для команды. Например, вы можете добавить 'cdc', чтобы сделать его 'cd -', который предоставил бы вам более короткий способ добраться до последнего каталога, добавив:
alias cdc='cd -'
Таким образом, вы просто наберете «cdc», и вы попадете в ваш последний рабочий каталог.
bind '"\e[24~":"\C-k \C-ucd -\n"'
(или, более предпочтительно, переместите его в inputrc
файл, как указано в ответе).