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


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 ..

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в любом каталоге, вы увидите, что есть две записи: одна с именем "." и другой по имени ".."; одиночная точка указывает на каталог, в котором вы уже находитесь, а двойная - на предыдущий каталог в пути.


22
..это не предыдущий каталог, это просто родительский каталог.
— Der Hochstapler

4
Этот ответ предоставляет полезную информацию, даже если он не отвечает правильно на вопрос. Поэтому нет смысла накапливать отрицательные голоса за это, я проголосовал за усилия.
— Titou

1
Это не Беркли, особых наград нет только за участие
— Натанчер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.