¿Qué hace cd - (guión de cd)?

14

Escribí cd -en la terminal por error hoy, y recibí un error que decía:

bash: cd: OLDPWD not set

Y desafortunadamente, man cdno existe.

No manual entry for cd

¿Qué es lo que hace?

Dan
fuente
3
cdes un Bash incorporado. Por lo tanto, está documentado en man bash-builtins, en lugar de su propia página. Esto es válido para todos los demás componentes de Bash. Se puede decir que está integrado debido a la parte bash: frontal del mensaje de error.
kiri

Respuestas:

17

cd - cambia entre los directorios de trabajo actuales antiguos y nuevos.

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd -
bash: cd: OLDPWD no establecido
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd ~ / Desktop
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ pwd
/ inicio / avinash / Escritorio
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ cd -
/ inicio / avinash
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ 

Ver también,

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ echo $ OLDPWD

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd ~ / Desktop
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ echo $ OLDPWD
/ inicio / avinash
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ cd d
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop / d $ echo $ OLDPWD
/ inicio / avinash / Escritorio
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop / d $ 

La $OLDPWDvariable almacena la ruta del directorio de trabajo actual anterior.

Avinash Raj
fuente
8

La respuesta de Avinash Raj es completamente correcta, pero en cuanto a la entrada manual, puede obtener las páginas del manual POSIX y luego man cdfuncionará:

sudo apt-get install manpages-posix
man cd

El bit que te dice todo esto es la sección OPERANDS:

-      When a hyphen is used as the operand, this shall be equivalent to the command:

       cd "$OLDPWD" && pwd

which changes to the previous working directory and then writes its name.
Oli
fuente