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?

Respostas:


130

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


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.


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


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.


-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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.