Как я могу отменить последнюю команду cd?

73

Есть ли способ вернуться к предыдущему рабочему каталогу после выполнения cd в другой каталог?

Мой случай использования заключается в том, что я просматриваю структуру каталогов для Java-проекта, и я ожидаю, что текущий каталог имеет только один подкаталог. Итак, я набираю cd и быстро нажимаю Tab и Enter . Однако вкладка Tab не удалась, поскольку я ошибочно ожидал один подкаталог, когда на самом деле их больше. Итак, теперь я просто выполнил cd , и теперь я в своем домашнем каталоге вместо проекта Java. Есть ли способ «отменить» этот cd и вернуться обратно в каталог, в котором я был?

    
задан nickb 16.07.2012 в 20:18
источник

5 ответов

119

Вы можете использовать cd - , чтобы вернуться в предыдущее место, независимо от того, где это было.     

ответ дан ImaginaryRobots 16.07.2012 в 20:22
источник
19

cd - отлично подходит для возврата на один уровень, но если вы захотите вернуться на несколько уровней, посмотрите этот скрипт:

acd_func.sh

Это здорово. cd -- , чтобы просмотреть вашу историю, и cd -3 , чтобы вернуться на 3 уровня, например.

    
ответ дан Dean 17.07.2012 в 03:04
15

Вы также можете использовать pushd и popd , чтобы использовать стек каталога:)

Некоторая информация здесь

    
ответ дан Sinan Bolel 17.07.2012 в 00:19
5

Кроме того, cd .. может взять вас назад в каталог родительский рабочего каталога, а затем, при необходимости, команду можно повторить, пока вы не дойдете до того места, где хотите быть. Фактически, каждый раз, когда он вызывается, он возвращает вас через дерево каталогов, которое в конечном итоге заканчивается в / (корневой каталог) , если , вы просто повторяли команду.

В контраст cd - фактически делает предыдущий рабочий каталог текущим рабочим каталогом (который известен как . ) и какое точное местоположение в файловой системе можно найти с помощью pwd .

Таким образом, оба cd .. и cd - могут быть полезны в разных обстоятельствах при навигации по дереву каталогов, хотя в вышеупомянутых отношениях они отличаются . Возможно, самая полезная команда после веселого экспериментирования с этими двумя командами - это cd , которая возвращает вас в домашнюю папку.     

ответ дан user76204 10.08.2012 в 22:50
-1

Лучший способ сделать это для возврата - cd - , однако, если вы хотите пропустить сразу несколько уровней, лучше использовать cd .. для одного уровня, cd ../.. , для двоих, cd ../../.. для три и дальше ... хороший способ сделать это быстро - это сценарий:

#!/bin/bash
printf "Number of folders to move back: "
read TIMES
BACKCHARS=../
BACK=$(for i in 'seq $TIMES'; do printf $BACKCHARS; done)
cd $BACK
    
ответ дан user258456 02.06.2015 в 21:19