Categorías
DevOps SysAdmin

Comando cd en Linux con ejemplos

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 -

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *