Cómo usar el comando cd en Linux

Un gráfico de una ventana de terminal en un sistema portátil Linux.
Fatmawati Achmad Zaenuri / Shutterstock

Algunos comandos de Linux son tan familiares que ni siquiera nos damos cuenta de que los estamos usando. El  cdcomando para cambiar de directorio es uno de estos. Hay algunos trucos que pueden ayudarlo a ser más eficiente, cdo puede deshacerse de ellos por completo.

Un comando en el que rara vez piensas

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

Dentro de la primera hora de usar una computadora Linux, aprenderá a usar el  cd comando incluido con Bash y otros shells. Quizás tenía experiencia previa usándolo 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. A continuación, se incluyen algunos consejos y sugerencias que pueden mejorar su eficiencia.

Las operaciones de cd estándar

En aras de ser 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 regresar al directorio de inicio, podemos usar los siguientes comandos:

cd / usr / lib / firefox / browser /
cd / inicio / dave

Los comandos "cd / usr / lib / firefox / browser /" y "cd / home / dave" en una ventana de terminal.

No es necesario que escriba la ruta completa del directorio; puede utilizar la función de autocompletar. Para cada parte de una ruta, después de escribir suficientes letras para distinguir el nombre del directorio de los demás, presione Tab para completar automáticamente el nombre del directorio.

Por ejemplo, escriba lo siguiente en la línea de comando:

cd / usr / lib / fire

Ahora, presione Tab y el shell completará el resto del directorio «firefox» por usted. Si agrega “/ b” a la ruta y presiona Tab nuevamente, agrega el directorio del “navegador” al comando.

El shell agrega una barra diagonal al final para que pueda repetir el proceso de finalización de tabulación. También es por eso que hay una barra inclinada hacia adelante en el primer comando. No hay uno en el segundo porque ese fue escrito.

Relacionado:  ¿Qué es un TTY en Linux? (y cómo utilizar el comando tty)

Puede usar la tilde ( ~)  como una forma abreviada de volver rápidamente al directorio de inicio desde cualquier lugar del sistema de archivos; simplemente escriba lo siguiente:

cd ~

El comando "cd ~" en una ventana de terminal.

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

Las rutas relativas se referencian desde el directorio de trabajo actual. En el directorio de inicio, hay un directorio llamado work. Puede usar el treecomando para ver el árbol de directorios dentro del workdirectorio; simplemente escriba lo siguiente:

árbol

El comando "árbol" en una ventana de terminal.

El workdirectorio contiene un directorio llamado dev. También hay un directorio llamado deven el directorio raíz del sistema de archivos. Puede usarls  con  -d(directorio) para ver cada uno de estos. La -hlopción (legible por humanos, lista larga) indica  lsque se utilicen unidades fáciles de leer para los tamaños de directorio y la lista de formato largo.

Si escribe dev, el shell asume que se refiere al «dev» en el directorio actual. Para forzarlo a mirar el «dev» en el directorio raíz, simplemente agregue una barra inclinada hacia adelante para representar la raíz del sistema de archivos, como se muestra a continuación:

ls -d dev -hl
ls -d / dev -hl

Los comandos "ls -d dev -hl" y "ls -d / dev -hl" en una ventana de terminal.

El cdcomando se comporta así lsa este respecto. Si hace referencia al directorio como dev, como se muestra a continuación, asume que se refiere al directorio en el work directorio:

cd dev

El comando "cd dev" en una ventana de terminal.

Sin una barra diagonal inicial, se supone que las rutas más largas también comienzan desde el directorio de trabajo actual, como se muestra a continuación:

cd dev / mobile / android

El comando "cd dev / mobile / android" en una ventana de terminal.

Cambiar el directorio con Double Dot

El identificador de doble punto representa el directorio padre del actual en funcionamiento. Si se encuentra en un subdirectorio profundamente anidado, puede usar ..  with cd para moverse al directorio principal del que se encuentra.

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

Escriba lo siguiente:

discos compactos ..
discos compactos ../..

Los comandos "cd .." y "cd ../ .." en una ventana de terminal.

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

alias .2 = "cd ../ .."
alias .3 = "cd ../../ .."

Los comandos alias .2 = "cd ../ .." y alias .3 = "cd ../../ .." en una ventana de terminal.

Puede utilizarlos de la misma forma que los propios comandos.

Relacionado:  Las mejores distribuciones de Linux para principiantes

alias .2 = "cd ../ .." se usa para cambiar de directorio en una ventana de terminal

Para que los alias sean consistentes en los reinicios de su computadora, debe agregarlos a su archivo .bashrco.bash_aliases .

Salte fácilmente entre dos directorios

El guión ( -) es otro símbolo que tiene una función especial. Cambia su directorio de nuevo al del que acaba de llegar.

Para este ejemplo, digamos que está en el directorio «c». Puede utilizar cdpara cambiar al directorio «cuarto». Luego, puede usar  cd - para rebotar entre los dos directorios.

Para hacer esto, escribe lo siguiente:

cd ../forth

discos compactos –

discos compactos –

Los comandos "cd ../forth", "cd -" y "cd -" en una ventana de terminal.

El nombre del directorio al que se está moviendo aparece antes de pasar a él.

Otro tipo de familiar

El shell utiliza el directorio de trabajo actual como directorio «raíz» o base para las rutas relativas. Puede utilizar la  CDPATHvariable de entorno para establecer otra ubicación como directorio base para las rutas relativas. Si pasa la mayor parte del tiempo en una determinada sección del árbol del sistema de archivos, esto puede ahorrarle muchas pulsaciones de teclas (y tiempo) todos los días.

Escribamos lo siguiente para crear work/dev/projectsel directorio base para las rutas relativas:

exportar CDPATH = / home / dave / work / dev / projects

El comando "exportar CDPATH = / home / dave / work / dev / projects" en una ventana de terminal.

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

Ahora, independientemente de dónde se encuentre en el sistema de archivos, cuando usa el cdcomando, el shell verifica si el directorio de destino está ubicado en el directorio base. Si es así, será trasladado a ese directorio de destino.

Si su directorio de destino comienza con una barra inclinada ( /), lo que lo convierte en una ruta absoluta, no se verá afectado por la CDPATHvariable de entorno.

Para demostrar esto, escribimos lo siguiente:

Centros para el Control y la Prevención de Enfermedades
prólogo del cd
cd / usr
cd adelante

Los comandos "cd c", "cd prolog", "cd / usr" y "cd forward" en una ventana de terminal.

La CDPATHvariable de entorno es realmente una ruta, al igual que la PATHvariable de entorno . Cuando escribe un comando, el shell busca PATHuna coincidencia en las ubicaciones . Cuando lo usa  CDPATH, el shell busca las ubicaciones en la CDPATHvariable de entorno para encontrar una coincidencia. Además, al igual que  PATH, CDPATHpuede contener varias ubicaciones.

Relacionado:  Cómo usar el último comando en Linux

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

export CDPATH=.:/home/dave/work/dev/projects

Para que sus configuraciones sean permanentes, debe agregarlas a un archivo de configuración, como  .bashrc.

Una cosa a tener en cuenta: si configura un directorio base, también afecta a los cambios de directorio realizados dentro de los scripts. Para evitar esto, puede usar rutas absolutas en sus scripts o una prueba en su .bashrcarchivo cuando especifique su CDPATH, como se muestra a continuación:

if test “${PS1+set}”; then CDPATH=.:/home/dave/work/dev/projects; fi

Esto realiza una prueba para ver si la variable indicador de línea de comandos, $PS1se establece. La CDPATH variable de entorno solo se establecerá si la prueba tiene éxito.

Usando shopt con cd

Con el shoptcomando , puede configurar ciertas opciones para el shell. Algunos de estos pueden mejorar su uso de cd. Para configurarlos, use la -sopción (habilitar) con shopt para pasarle un nombre de opción.

La cdspellopción comprueba los nombres de su directorio y corrige algunos errores de escritura comunes, incluidos los caracteres transpuestos o faltantes, o nombres con demasiados caracteres. Si encuentra un directorio que coincide con alguna de las correcciones, se imprime la ruta corregida y se cdlleva a cabo la acción.

Como ejemplo, escribimos lo siguiente para configurar la cdspellopción y escribimos mal «Escritorio» para ver si el shell lo corrige por nosotros:

shopt -s cdspell
cd Desktpo

El comando "shopt -s cdspell" en una ventana de terminal.

El shell detectó el error, lo corrigió y cambió al directorio «Escritorio».

Otra shoptopción que puede utilizar cdes autocd. Elimina la necesidad de escribir cden absoluto. Todo lo que escriba que no sea un comando, script u otro ejecutable (como un alias), se usa como directorio de destino. Si puede transferir a ese directorio, se imprime en la ventana del terminal y se le cambia a ese directorio.

Como ejemplo, escribimos lo siguiente:

shopt -s autocd
/ usr / local / games
/ etc
~

Los comandos "shopt -s autcd", "/ usr / local / games", "/ etc" y "~" en una ventana de terminal.

¡Ver! ¡Puede saltar por todo el sistema de archivos sin siquiera usarlo cd!

La configuración que cambie  shopt solo afectará a los shells interactivos, no a los scripts.

La colección de cd

Probablemente no adopte todos estos. Sin embargo, es probable que haya encontrado algo de interés o beneficio aquí. Después de todo, ¡todo lo que acelera o simplifica la navegación de la línea de comandos está bien!