Cómo usar el comando cd en Linux

Algunos comandos de Linux son tan familiares que ni siquiera nos damos cuenta de que los estamos usando. El comando cd para cambiar directorios es uno de estos. Hay algunos trucos que pueden ayudarte a ser más eficiente con cd, o puedes deshacerte de él por completo.

Un comando en el que rara vez piensas

Parpadeas todo el día, todos los días, pero, la mayoría de las veces, no lo sabes. A menos que algo entre en tu ojo, rara vez piensas en ese pequeño movimiento regular. Algunos comandos de Linux son así. Se ciernen en la periferia de tu conciencia. Aunque los uses a diario, no te llaman la atención porque son muy pequeños y simples.

Dentro de la primera hora de usar una computadora Linux, aprendes a usar el comando cd incluido con Bash y otros shells.

Quizás tenías experiencia previa en usarlo en otro sistema operativo y no necesitaba una explicación. Cambia el directorio de trabajo actual, ¿verdad? ¿Qué más hay que saber?

Bueno, más de lo que piensas. Aquí hay algunos consejos y sugerencias que podrían mejorar tu eficiencia.

Las operaciones estándar de CD

En aras de estar completo, repasemos rápidamente los usos estándar de cd.

Si estamos en el directorio de inicio, pero queremos cambiar a uno ubicado en /usr/lib/firefox/browser, y luego volver al directorio de inicio, podemos usar los siguientes comandos:

No tienes que escribir la ruta completa del directorio; puedes usar autocompletar. Para cada parte de una ruta, después de escribir suficientes letras para distinguir el nombre del directorio de los demás, presiona Tab. Esto para completar automáticamente el nombre del directorio.

Por ejemplo, escribe lo siguiente en la línea de comandos:

Ahora, presiona Tab y la shell completará el resto del directorio “firefox” por ti. Si agregas “/b” a la ruta y presionas Tab nuevamente, agregas el directorio “browser” al comando.

La shell retoma una barra diagonal posterior para que pueda repetir el proceso de finalización de tabulación. Esa es también la razón por la cual hay una barra inclinada hacia adelante en el primer comando. No hay una en el segundo porque ese fue escrito.

Puedes usar tilde (~) como una forma abreviada para volver rápidamente al directorio de inicio desde cualquier parte del sistema de archivos. Simplemente escribe lo siguiente:

Estos son ejemplos de rutas absolutas, en las que proporcionas la ruta completa desde la raíz del sistema de archivos hasta el directorio de destino a cd.

Uso de tree

Se hace referencia a las rutas relativas desde el directorio de trabajo actual. En el directorio de inicio, hay un directorio llamado work. Puedes usar el comando tree para ver el árbol de directorios dentro del directorio work, simplemente escribe lo siguiente:

El directorio work contiene un directorio llamado dev. También hay un directorio llamado dev en el directorio raíz del sistema de archivos. Puedes usar ls con -d (directorio) para ver cada uno de estos. La opción –hl (lista larga legible para humanos) le dice a ls que use unidades fáciles de leer para los tamaños de directorio. Asimismo, la lista de formato largo.

Si escribes dev, la shell asume que te refieres al “dev” en el directorio actual. Para forzarlo a ver el “dev” en el directorio raíz, simplemente agrega una barra diagonal hacia adelante. Esto para representar la raíz del sistema de archivos, como se muestra a continuación:

El comando cd se comporta como ls a este respecto. Si haces referencia al directorio como dev, como se muestra a continuación, se supone que te refieres al directorio en el directorio work:

Sin una barra inclinada hacia adelante, se supone que las rutas más largas comienzan desde el directorio de trabajo actual, como se muestra a continuación:

Cambiar el directorio con doble punto

El identificador de doble punto representa el directorio padre de trabajo actual. Si estás en un subdirectorio anidado, se puede utilizar ..  con cd para moverte al directorio padre desde donde te encuentres.

Esto te mueve dos directorios hacia arriba en el árbol de directorios. Si agregas más  .. al comando, te permite mover un número arbitrario de niveles hacia arriba en el árbol de directorios.

Escribe lo siguiente:

También puedes crear un conjunto de alias para realizar estas maniobras por ti, escribiendo lo siguiente:

Puedes usarlos de la misma manera que los comandos en sí.

Para hacer los alias consistente en los reinicios de tu equipo, debes añadirlos a tu archivo .bashrc.bash_aliases.

Saltar fácilmente entre dos directorios

El guión () es otro símbolo que tiene una función especial. Cambia tu directorio de nuevo al que acabas de llegar.

Para este ejemplo, supongamos que estás en el directorio “c”. Puedes utilizar cd para cambiar al directorio “forth“. Luego, puedes usar cd – para rebotar de un lado a otro entre los dos directorios.

Para hacer esto, escribe lo siguiente:

El nombre del directorio al que te estás moviendo aparece antes de ingresar a él.

Otro tipo de uso

La shell utiliza el directorio de trabajo actual como el directorio “raíz” o base para rutas relativas. Puedes usar la variable de entorno CDPATH para establecer otra ubicación como directorio base para rutas relativas.

Si pasas la mayor parte de tu tiempo en una determinada sección del árbol del sistema de archivos, esto puede ahorrarte muchas pulsaciones de teclas. También te ahorrará tiempo todos los días.

Escribamos lo siguiente para crear el directorio base work/dev/projects para rutas relativas:

Ahora, cada vez que usas el comando cd, se verifica primero la ubicación en la variable de entorno CDPATH para buscar nombres de directorio coincidentes. Si alguno de ellos coincide con el objetivo que proporcionaste en el comando cd, serás transferido a ese directorio.

Ahora, independientemente de dónde te encuentres en el sistema de archivos, cuando utilizas el comando cd, la shell comprueba si el directorio de destino se encuentra en el directorio base. Si es así, te trasladarán a ese directorio de destino.

Variables

Si tu directorio de destino comienza con una barra diagonal (/). Esto lo convierte en una ruta absoluta, no se verá afectado por la variable de entorno CDPATH.

Para demostrar esto, escribimos lo siguiente:

La variable de entorno CDPATH es realmente una ruta, al igual que la variable de entorno PATH. Cuando escribes un comando, la shell busca en las ubicaciones PATH una coincidencia.

Cuando usas CDPATH, la shell busca una coincidencia CDPATH en las ubicaciones de la variable de entorno. También, lo mismo que PATHCDPATH pueden contener múltiples ubicaciones.

Para que la shell busque en el directorio actual antes de otras ubicaciones en la variable de entorno CDPATH, simplemente agrega un punto (.). Esto al comienzo de la ruta de la siguiente manera:

Para que tu configuración sea permanente, debes agregarla a un archivo de configuración, como  .bashrc.

Una cosa a tener en cuenta: si configuras un directorio base, también afecta los cambios de directorio realizados dentro de los scripts. Para evitar esto, puedes usar rutas absolutas en tus scripts o una prueba en tu archivo .bashrc cuando especifiques tu CDPATH. Tal como se muestra a continuación:

Esto realiza una prueba para ver si se configuró la variable de solicitud de línea de comandos $PS1. La variable de entorno CDPATH solo se establecerá si la prueba tiene éxito.

Usando shopt con cd

Con el comando shopt, puede establecer ciertas opciones para la shell. Algunos de estos pueden mejorar su uso de cd. Para configurarlos, utiliza la opción –s (habilitar) con shopt para pasarle el nombre de una opción.

La opción cdspell verifica los nombres de tu directorio. Además, corrige algunos errores de escritura comunes, incluidos los caracteres transpuestos o faltantes, o los nombres con demasiados caracteres. Si encuentra un directorio que coincida con alguna de las correcciones, se imprime la ruta corregida y cd lleva a cabo la acción.

Como ejemplo, escribimos lo siguiente para establecer la opción cdspell y escribir mal “desktop” para ver si la shell lo corrige por nosotros:

La shell detectó el error, lo corrigió y cambió al directorio “desktop”.

Otra opción shopt que puede usar cd es autocd. Elimina la necesidad de escribir cd en absoluto. Todo lo que escribas que no sea un comando, script u otro ejecutable (como un alias), se usa como un directorio de destino.

Si puede transferir a ese directorio, se imprime en la ventana de la terminal y se cambia a ese directorio.

Como ejemplo, escribimos lo siguiente:

¡Cómo puedes Ver! ¡Puedes saltar por todo el sistema de archivos sin siquiera usar cd!

La configuración con la que cambia shopt solo afecta a las shells interactivas, no a los scripts.

La colección de cd

Probablemente no adoptes todo esto. Sin embargo, es probable que hayas encontrado algo de interés o beneficio aquí. Después de todo, ¡todo lo que acelere o simplifique tu navegación en la línea de comandos está bien!