Este comando cd
es otro de los más básicos que hay en Linux junto con pwd, y sirve para cambiar de directorio al sitio que le indiques. No se puede hacer prácticamente nada sin el ya que habitualmente hay que moverse por el árbol de directorios para poder hacer algo. Veremos unos ejemplos interesantes para manejarlo bien.
Sintaxis
cd [-L|[-P [-e]] [-@]] [directorio]
Descripción
El comando cd
es el acrónimo de «Change directory» y sirve para cambiar de directorio. Realmente no es un comando, sino un «built-in command» u «orden interna» de bash y no tiene ningún fichero ejecutable. No existe un /usr/bin/cd
Es importante conocer el árbol de directorios, ya que de esta forma conseguiremos hacer todo mucho más rápido. ¿Conoces en qué directorio se guardan los logs de accesos erróneos por ssh? ¿Conoces la ruta de tu directorio $HOME
? ¿Sabes dónde está el directorio donde se guarda la configuración de red?
Ejemplos
Al usar el comando cd
sin ningún argumento de entrada, se cambia del directorio actual al directorio $HOME
del usuario actual. Los siguientes comandos son equivalentes entre sí:
$ cd
$ cd ~
$ cd $HOME
$ pwd
/home/inthenite
Estas son las variables de entorno relacionadas:$PWD
Directorio actual donde nos encontremos$OLDPWD
Anterior directorio donde estábamos$HOME
Contiene el nombre de nuestro según esté definido en /etc/passwd
y será donde vaya cuando no introduzcamos ningún argumento
Si se usa el guión (-) como argumento para cd
iremos al directorio anterior de dónde hubiéramos venido. Y el comando equivalente sería cd $OLDPWD
inthenite@debian10:~$ pwd
/home/inthenite
inthenite@debian10:~$ cd /
inthenite@debian10:/$ cd -
/home/inthenite
inthenite@debian10:~$ cd -
/
inthenite@debian10:/$ cd -
/home/inthenite
inthenite@debian10:~$ cd $OLDPWD
inthenite@debian10:/$ cd $OLDPWD
inthenite@debian10:~$ cd $OLDPWD
inthenite@debian10:/$ cd $OLDPWD
No podemos volver más hacia atrás en los directorios donde hemos estado, se podría decir que cada vez que ejecutamos el comando cd -
se intercambian los valores de las variables de entorno PWD
y OLDPWD
Como es una orden interna (builtin) de bash
y no un comando, si queremos obtener más información sobre su uso tenemos que hacer un man bash
y buscar lo relacionado con cd
.
Si estamos dentro de un script y queremos saber si ha funcionado bien el comando cd
previo, el valor de retorno será 0 si se cambió correctamente de directorio y 1 si no pudo hacerlo.
Rutas absolutas y relativas
cd
nos puede mover a rutas absolutas y relativas al directorio actual. Las rutas absolutas son las que empiezan por la raiz /
y las relativas indican un directorio que cuelga de nuestro directorio actual.
/
├── p1
│ ├── d1
│ └── d2
├── p2
│ └── e1
└── p3
├── t4
├── t5
│ └── y1
└── t6
Estando en el directorio p2
, nos podemos mover al directorio e1
escribiendo bien su ruta absoluta /p2/e1
o bien su relativa al directorio actual e1
o ./e1
. Si estamos en el directorio d2
y queremos ir al directorio y1
podemos ir con su ruta absoluta /p3/t5/y1
o bien con la ruta relativa ../../p3/t5/y1
aunque esta última no tenga mucho sentido deja bastante claro el recorrido de una ruta relativa.
Fallos habituales
Los fallos habituales suelen ser ir a un directorio intentando poner su ruta absoluta pero olvidándose se la /
al principio de la ruta como:cd usr/local
También suele ocurrir que pones cd
sin ningún argumento, y te ha cambiado a tu directorio $HOME
sin que te des cuenta y seguramente ya no tengas acceso a lo que quisieras hacer, como hemos visto previamente se soluciona rápidamente con un cd -