O que significa 'cd -'?

98

Hoje, em um script bash shell, observei o comando abaixo no final do script. Eu sei o que é, cdmas não tenho consciência do significado de um travessão depois dele.

cd -

O que isto significa? O Google ingenuamente trunca o, -então não consigo encontrar sua resposta.

AppleGrew
fonte
@nm Não man cdna minha máquina, FYI.
Dan Fego
Tentei isso. Ele retornará cd-rom, CD etc.
AppleGrew
2
Você também pode querer examinar os comandos pushde popd. Eu não poderia viver sem eles.
Brett Hale
2
@nm - cdnão é um binário externo, é um comando embutido nos shells. dica man bash.
Jordânia,
Eu tenho man cdno meu sistema (Gentoo), ele diz: This manual page is part of the POSIX Programmer's Manualetc etc. Se o seu estiver faltando, você pode sempre pesquisar no Google man cd.
n. 'pronomes' m.

Respostas:

131

Se um único traço for especificado como o argumento, ele será substituído pelo valor de OLDPWD.

O OLDPWDé definido por cdcomando e é o diretório de trabalho anterior.

Sandro Munda
fonte
2
Obrigado. Isso foi curto e, do ponto de vista do programador, completo.
AppleGrew
o que acontece se fornecermos -como arquivo.
viveksinghggits
@viveksinghggits Você pode usar cd ./-ou excluí-lo com um escaperm -fr -- -
Sandro Munda
20

cd - retorna ao diretório em que estava anteriormente.

Por exemplo:

marcelo @ marcelo: ~ $ cd / opt
marcelo @ marcelo: / opt $ cd / usr / bin
marcelo @ marcelo: / usr / bin $ cd -
/optar
marcelo @ marcelo: / opt $ 

Eu estava em / opt, mudei para / usr / bin e voltei para / opt com cd -

Marcelo Diniz
fonte
10

cd - o leva de volta ao último diretório.

$ cd ~/Desktop
$ pwd
/Users/daknok/Desktop
$ cd /
$ pwd
/
$ cd -
$ pwd
/Users/daknok/Desktop

fonte
6

cd - retorna ao diretório anterior em que você estava.

Diga que estou dentro /usr/e eu digitocd /var/local/someplace/else

Então eu uso cd -voltarei para/usr

Cfreak
fonte
6

Do manual

Um argumento de - é equivalente a $ OLDPWD. Se um nome de diretório não vazio de CDPATH for usado, ou se - for o primeiro argumento, e a mudança de diretório for bem-sucedida, o nome do caminho absoluto do novo diretório de trabalho é gravado na saída padrão. O valor de retorno é verdadeiro se o diretório foi alterado com sucesso; caso contrário, falso

Portanto, o -é equivalente a $OLDPWD, que contém o último diretório em que o shell estava e é definido pela cdchamada anterior .

phoxis
fonte
2

cd - traz você de volta ao último diretório onde você estava. por exemplo

cd ~/Documents
cd ~
cd /

Agora você está em '/' e, se executar 'cd -', estará em '~'. BTW, execute 'cd -' mais uma vez, você retornará a '/' mas não a '~ / Documentos'

Jie Zhang
fonte
-1

“Diretório atual“ É o que o comando bash cd terminal significa. Significa "mantenha-me neste diretório"

TheHessian
fonte
cd significa "Mudando de diretório"!
Reyhaneh Trb