¿Qué significa 'cd -'?

95

En un script de shell bash hoy noté el siguiente comando al final del script. Yo se que escd pero desconozco el significado de una carrera tras él.

cd -

¿Qué significa esto? Google trunca ingenuamente el, -por lo que no puedo encontrar su respuesta.

AppleGrew
fuente
@nm No man cden mi máquina, FYI.
Dan Fego
Probé eso.
Devolverá
2
Es posible que también desee ver los comandos pushdy popd. No podría vivir sin ellos.
Brett Hale
2
@nm: cdno es un binario externo, es un comando integrado en los shells. pista man bash.
jordanm
Lo tengo man cden mi sistema (Gentoo), dice: This manual page is part of the POSIX Programmer's Manualetc etc. Si falta el tuyo, siempre puedes buscar en Google man cd.
n. 'pronombres' m.

Respuestas:

128

Si se especifica un solo guión como argumento, será reemplazado por el valor de OLDPWD.

Se OLDPWDestablece mediante cdcomando y es el directorio de trabajo anterior.

Sandro Munda
fuente
2
Gracias. Esto fue breve y, desde el punto de vista del programador, completo.
AppleGrew
que pasa si lo proporcionamos -como archivo.
viveksinghggits
@viveksinghggits Puede usar cd ./-o para eliminarlo puede escapar conrm -fr -- -
Sandro Munda
20

cd - vuelve al directorio en el que estaba anteriormente.

Por ejemplo:

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

Estaba en / opt, cambié a / usr / bin y luego volví a / opt con cd -

Marcelo Diniz
fuente
10

cd - lo lleva de vuelta al último directorio.

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

fuente
6

cd - vuelve al directorio anterior en el que estaba.

Di que estoy adentro /usr/y escribocd /var/local/someplace/else

Entonces uso cd -voy a volver a/usr

Cfreak
fuente
6

Del manual

Un argumento de - es equivalente a $ OLDPWD. Si se usa un nombre de directorio no vacío de CDPATH, o si - es el primer argumento, y el cambio de directorio es exitoso, el nombre de ruta absoluto del nuevo directorio de trabajo se escribe en la salida estándar. El valor de retorno es verdadero si el directorio se cambió correctamente; falso de lo contrario

Por lo tanto, -es equivalente a $OLDPWD, que contiene el último directorio en el que estaba el shell, y se establece mediante la cdinvocación anterior .

foxis
fuente
2

cd: lo lleva de vuelta al último directorio en el que estaba. p.ej

cd ~/Documents
cd ~
cd /

Ahora está en '/', y si ejecuta 'cd -' estará en '~'. Por cierto, ejecute 'cd -' una vez más, volverá a '/' pero no a '~ / Documentos'

Jie Zhang
fuente
-1

“Directorio actual” es lo que significa el comando de terminal bash cd. Significa "mantenerme en este directorio"

TheHessian
fuente
cd significa "Cambio de directorio".
Reyhaneh Trb