Como posso desfazer o último comando cd?

77

Existe alguma maneira de voltar ao diretório de trabalho anterior depois de fazer um cdpara um diretório diferente?

Meu caso de uso é que estou percorrendo uma estrutura de diretório para um projeto Java e estou esperando que o diretório atual tenha apenas um subdiretório. Então, eu digito cde acertar Tabe Enterrapidamente. No entanto, a Tabfalha, como eu esperava por um subdiretório, quando na verdade há mais. Então, agora, acabei de executar cde agora estou no meu diretório pessoal, em vez do projeto Java. Existe uma maneira de "desfazer" isso cde voltar ao diretório em que eu estava?

nickb
fonte

Respostas:

130

Você pode usar cd -para voltar ao seu local anterior, não importa onde estava.

ImaginaryRobots
fonte
10
Bem ... mesmo depois de anos no Ubuntu, eu não sabia disso. Obrigado
andybleaden
19

cd - é ótimo para voltar um nível, mas se você quiser voltar alguns níveis, confira este script:

acd_func.sh

É ótimo. cd --para ver seu histórico e cd -3voltar três níveis, por exemplo.

reitor
fonte
Uau ... um link de geocidades. Agora há um URL que não vejo há muito tempo. <insert Obi-wan JPG>
Michael Butler
1
a essência deste comentário. <jpg Yoda insert>
Donbhupi 17/10
15

Você também pode usar pushde popdutilizar a pilha de diretórios :)

Algumas informações aqui

Sinan Bolel
fonte
5

Além disso, cd ..você pode levá-lo de volta ao diretório pai do diretório de trabalho e, se necessário, o comando pode ser repetido até chegar onde você deseja estar. De fato, toda vez que é evocado, você volta à árvore de diretórios, que terminaria em /(o diretório raiz) se você continuasse repetindo o comando.

Por outro lado , cd -na verdade , o diretório de trabalho anterior é o diretório de trabalho atual (conhecido como .) e com a localização exata no sistema de arquivos pwd.

Portanto, ambos cd ..e cd - podem ser úteis em diferentes circunstâncias ao navegar na árvore de diretórios, embora sejam diferentes nos aspectos mencionados acima. Talvez o comando mais útil depois de se divertir experimentando esses dois comandos seja o cdque retorna à pasta inicial.


fonte
-1

A melhor maneira de fazer isso para voltar é cd -, no entanto, se você quiser pular muitos níveis de uma vez, é melhor usar cd ..um nível, cd ../..dois, cd ../../..três e assim por diante ... uma boa maneira de fazer isso rápido é roteiro:

#!/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
fonte
1
A execução cdem um script não afeta o shell pai. Você precisaria colocar isso em uma função shell para que seja útil.
precisa saber é o seguinte
assim:up(){ local n="$1"; while ((n--)); do path+='../'; done; cd "$path"; }
wjandrea 28/04