Вернуться к предыдущему каталогу в оболочке

306

Есть ли способ вернуться к предыдущему каталогу, в котором мы использовали bash, tcsh, без использования pushd / popd? Я хотел бы напечатать что-то вроде «назад» и вернуться в предыдущий каталог, в котором я находился.

Редактировать:

«cd -» работает, но только для текущих и предыдущих каталогов. Можно ли в любом случае вернуться к предыдущему предыдущему предыдущему каталогу, например, как вернуться в веб-браузер?

С уважением

Дон Ч
источник
1
Как отмечено ниже, вы можете сделать это, используя «pushd» и «popd».
голубоглазый
8
Просто примечание "cd -" идет к директории пользователя по умолчанию (/ home / username)
sdaffa23fdsf
1
Лучший ответ imho: unix.stackexchange.com/a/180640/158177 предоставляет cd-1-cd -9, что, как мне кажется, было задано ОП
Titou

Ответы:

413

cd - (возвращается к предыдущему каталогу)

Если вы хотите иметь возможность перейти к другим предыдущим каталогам, это невозможно из коробки. Но проверьте этот скрипт и инструкции:

История посещенных каталогов в BASH

Команда cd работает как обычно. Новая функция - это история последних 10 каталогов, а команда cd расширена для отображения и доступа к ней. CD - (или просто нажав Ctrl + W) показывает историю. Перед каждым именем каталога вы видите номер. cd -num с номером, который вы хотите, переходит в соответствующий каталог из истории.

Снарк
источник
20
также могут быть полезны pushd и popd
lorenzog
6
@lorenzog: lydonchandra в своем вопросе сказал «без использования pushd / popd»
Снарк
@ ogc-nick - для использования этого cd --в стиле меню, вы должны использовать упомянутый скрипт
Ram
1
@ ogc-ник нет, это не так. Команда --просто отделяет команду и ее параметры от параметров (см. Этот пост ). Поскольку никакие аргументы не следуют после --, последняя команда просто cdпереключается на ваш домашний каталог. Это мог быть второй предыдущий каталог, но это просто совпадение.
Гриддо
вау много синтаксического сахара
BugWhisperer
24

Вы также можете использовать переменную cd $OLDPWD. Это также может быть использовано в сценариях оболочки.

Алесь Долечек
источник
6
$ OLDPWD поддерживает последний каталог, из которого вы пришли, что хорошо для сценариев. Я часто использую $ OLDPWD с командой cp. Например, cp -v $ OLDPWD / file.
Нил Вайтман
1

Для Windows (включая командную консоль Node.js) не работает cd - для перемещения вверх на один каталог работает

cd ..
IgorBeaz
источник
3
cd .. переместится в родительский каталог, который не является темой вопроса.
ViaSat
1
Здесь нет ничего плохого Windows.
Тимо
0

Я считаю, что самый простой способ сделать это с помощью .bashrc Power Edit: https://github.com/wting/autojump . Вы можете «пометить» папки, к которым вы переходите, дав им сокращенное имя, которое легко запомнить (мой совет; вышеизложенное не в документах), например « Картинки для изображений» и т. Д. «Jump» возвращает вас в папку, к которой вы обращаетесь. «отмечен» и «помечает» список папок, которые вы добавили в «стек» (как в случае с pushd и pop d), с дополнительным преимуществом в том, что ваши оценки остаются неизменными от одного сеанса к следующему, до бесконечности.

Мне еще предстоит опробовать его на нескольких жестких дисках, но результаты должны быть такими же, как на одном томе.

С Райт

Стив Райт
источник
-1

Если вы спустились вниз по дереву каталогов и хотите вернуться назад, cd ..это мой личный фаворит. Вы можете легко перемещаться по ветке дерева, cd ..поднимаясь по одному каталогу, cd ../..двум, cd ../../..трем и т. Д. Вы также можете переходить вверх и вниз по другой ветке с помощью одной и той же команды, такой как cd ../../exampleили cd ../../../example/exampleт. Д. Для простого переключения, которое выполняется вперед и назад между каталогами, cd -или $OLDPWDваши лучшие ставки, как другие упоминали.

Адам Эриксон
источник
Есть какая-то конкретная причина, почему это было понижено? Он содержит правильные ответы, хотя, возможно, не единственные.
Адам Эриксон
-2

Я думаю, что cd ..может помочь. Если вы сделаете ls -aв любом каталоге, вы увидите, что есть две записи: одна с именем "." и другой по имени ".."; одиночная точка указывает на каталог, в котором вы уже находитесь, а двойная - на предыдущий каталог в пути.

Xente
источник
22
..это не предыдущий каталог, это просто родительский каталог.
Der Hochstapler
4
Этот ответ предоставляет полезную информацию, даже если он не отвечает правильно на вопрос. Поэтому нет смысла накапливать отрицательные голоса за это, я проголосовал за усилия.
Titou
1
Это не Беркли, особых наград нет только за участие
Натанчер