Como posso voltar ao último diretório usado em um shell do Linux?

0

Como posso voltar ao último diretório usado em um shell do Linux?

Por exemplo: eu abro um novo shell (ou um log em um shell de console diferente) e escrevo:

root@vignesh : cd /root/Desktop 

Isso me direcionará para o diretório /root/Desktop (se eu tiver acesso a ele)

root@vignesh:~/Desktop# 

Como posso agora voltar ao diretório anterior?
Existe algum comando para voltar ao último diretório que usei?
Precisei usar novamente o comando cd para voltar ao diretório anterior?

    
por BlueBerry - Vignesh4303 09.09.2015 / 12:07

3 respostas

3

cd -

cd - o levará ao diretório usado anteriormente (se houver um) ou gerará um erro.

Se um diretório usado anteriormente existir, ele será alterado lá, atualizando o valor do diretório de trabalho atual e do anterior, retornando um status de saída bem-sucedido ( 0 ). Caso contrário, ele imprimirá uma mensagem de erro e retornará um status de saída ( 1 ).
Faça sua própria verificação com cd -; echo $? .

O status de saída se tornará importante quando você for usá-lo em um script .
Um status de saída diferente de 0 pode parar a execução de um script inteiro (se houver um set -e ) ou, pior, pode levar a um ponto de saída do comando cd - , diferente do que você estava pensando quando escreveu o script e para executar comandos no diretório errado: imagine que você comece em dir0; depois que você mudar para dir1, você não conseguirá mudar para dir2. Agora você executa um cd - . Você pensa estar em dir1 mas em vez disso você está em dir0 ... e daqui tudo nas mãos do Destino.

cd $OLDPWD (ou cd $owd )

cd é um comando interno de todos os shells (todos, a partir de sh ).
Em dash e bash , a variável PWD , OLDPWD será definida para o diretório de trabalho atual e antigo. Em csh e tcsh , será definido cwd e owd .

Portanto, com o comando cd $OLDPWD em bash ou cd $owd em tcsh , você será levado ao diretório de trabalho antigo, se existir, ou ao seu diretório home se esta variável não estiver definida.
O código de saída será sempre 0 , se você tiver acesso ao seu diretório inicial (1) .

pushd newdir ... popd

pushd adiciona um diretório à pilha e popd remove um da pilha. Uma vantagem a respeito de cd - é que você escolherá quando para voltar ao diretório assinado, e você não será forçado a voltar para o último. Outra vantagem é que você pode empilhar vários diretórios e decidir a qual saltar. help pushd e help popd para as informações sobre os comandos embutidos .

Notas:

  1. Para escrever cd $NotAlreadySetVariable é o equivalente a escrever cd sem nenhum parâmetro que o leve ao seu diretório inicial . Para ser mais preciso, você será direcionado para o diretório dentro de $HOME (para bash, dash ...) ou $home (para csh, tcsh ...). Se este diretório não existir ou não estiver acessível, você receberá um erro. Se $HOME (ou $home ) estiver vazio, você permanecerá no diretório atual, nenhum erro será gerado e o valor $OLDPWD (ou $owd ) será definido no diretório atual.

  2. A variável $OLDPWD , $owd pode ser útil quando você quiser usar o diretório anterior como parâmetro para um comando. Por exemplo. Você deseja mover todos os arquivos do diretório atual para o antigo: mv * $OLDPWD .

Trivial
A ser observado a partir de man bash que na definição de PWD é usado o diretório de trabalho atual (cwd) e não algo como o diretório de trabalho atual (PWD) ...

PWD       The logical value of the current working directory.
          This is set by the cd command.

OLDPWD    The previous logical value of the current working directory.  
          This is set by the cd command.

HOME      The  home  directory of the current user; the default argument for  
          the cd builtin command. The value of this variable is also used when   
          performing tilde expansion.

de man tcsh

cd and pushd interpret '-' as the old working directory (equivalent to the shell variable owd). This is not a substitution at all, but an abbreviation recognized by only those commands. Nonetheless, it too can be prevented by quoting.

    
por 09.09.2015 / 15:23
3

eu descobri usando o comando cd

cd - 

redirecionará de volta para o último diretório usado

    
por 09.09.2015 / 12:11
2

use pushd dir para alterar o diretório use popd para alterar o dir de volta use dirs para exibir a pilha de diretórios use pushd para mudar o diretório atual com o anterior

    
por 09.09.2015 / 13:30