Latinoamérica
de.novatoanovato@gmail.com

Comando -cd-

Comando -cd-

Comando cd

El comando cd (del inglés, change directory), es una orden utilizada en sistemas operativos del tipo UNIX como GNU/Linux para cambiar el directorio de trabajo.

Es uno de los comandos básico en GNU/Linux y viene por defecto integrado en todas sus distribuciones de forma predeterminada. Si bien una herramienta muy simple, es muy útil a la hora de trabajar con directorios desde nuestra terminal.

Objetivo de éste artículo

El principal objetivo de este artículo es aprender a cambiar de directorios en GNU/Linux desde la consola de comandos y haciendo uso del comando cd. Para ello explicaremos su sintaxis y como trabajar con ella cuando queremos cambiar de directorio ya sea a una rutas absolutas  o rutas relativas, incluso veremos como identificar los enlaces simbólicos para elegir cambiar al directorio donde apunta o al directorio del enlace en si.

Sintaxis

El comando cd responde a la siguiente sintaxis:

cd [opciones] [{ruta relativa}{ruta absoluta}{Directorios especiales}]

Para el desarrollo de este articulo es importante comprender los tipos de rutas que podemos indicarle al comando cd, ya sean relativas o absolutas. En caso de no conocerlas o de querer repasar ambos conceptos, les comparto el articulo rutas relativas y rutas absolutas escrito principalmente para ayudar al desarrollo de este tipo de artículos.

Opciones del comando cd

Si bien el comando cd es una instrucción muy simple de usar, nunca esta de mas conocer las opciones a fondo para sacarle el máximo provecho posible, ya que es uno de los comandos esenciales que hacen a la gestión de archivos y directorios en sistemas operativos del tipo Unix tal y como GNU/linux.

Para ejemplificar cada una de las opciones, vamos a trabajar con el siguiente árbol de directorios que cree a partir de directorio /home/»users» para este articulo, cuya ruta absoluta es /home/cristian/A y si contenido podría expresarse de mediante el siguiente grafico:

También podremos visualizarlos desde la terminal de la siguiente manera:

Directorios especiales

En primera instancia me gustaría iniciar con los directorios especiales, aquellos que están siempre presentes sin importar la ruta en la que nos encontremos. Estos directorios son representados por . y .. en la estructura jerárquica, indicando el directorio en el que estamos y el directorio padre (o directorio de nivel superior) respectivamente. Ambos directorio se encuentran ocultos y para visualizarlos por consola podemos utilizar el comando ls -a quien nos listara todo el contenido de un directorio, incluyendo los archivos y carpetas ocultos.

También podemos listar con un poco mas de detalle con el comando ls -la, donde se nos imprimirá:

Como podemos observar, aunque la carpeta este vacía, estos directorios siempre estarán presentes, siempre; si, aun en el directorio raíz (/). Pero… ¿Para que nos sirven?

Este tipo de directorios nos permitirán crear rutas relativas para que pasemos como parámetros a partir de la posición en la que nos encontremos en el árbol de directorios. En el caso del comando cp, cambiar de directorios desde la posición en la que nos encontremos hacia el directorio destino. Evitando tener que indicar la ruta absoluta teniendo que pasar por todos los directorios desde la raíz, hacia el directorio que deseamos como destino.

Cambiar directorio usando ruta relativa

Para el comando cd, las rutas relativas indican el camino hacia un directorio, pero basándonos en el directorio desde el que se ejecuta la orden, osea, desde el directorio en donde nos encontramos posicionados y haciendo uso de los directorios especiales (como lo indicamos previamente).

Haciendo uso del directorio padre

El directorio especial .. o directorio padre, nos permitirá movernos tantos directorios hacia atrás como directorios padres tengamos. Si nos encontramos en el directorio F del ejemplo y ejecutamos cd .. nos moveremos un directorio hacia atrás (al directorio B del ejemplo), en cambio si desde el directorio F ejecutamos cd ../.. nos moveremos 2 directorios hacia atrás (al directorio A del ejemplo) y así hasta la raíz (/). Veamos respectivamente ambas citas…

Nos encontramos en el directorio F, de la ruta /home/cristian/A/B/F.

Donde ejecutamos cd .. para movernos al directorio padre del actual

y cd ../.. para movernos dos directorios padres hacia atrás

¿Cuanto directorios padres hacia atrás podemos movernos? Tantos como tengamos hasta el directorio raíz (/), ya que este es el directorio padre de toda la jerarquía de directorios en GNU/Linux.

Haciendo uso del directorio hijo

El directorio especial . nos indica el punto de partida desde el directorio en el que nos encontramos hacia los directorios hijos, si los hubiese. Esto quiere decir que podremos indicar una ruta de directorios hijos a partir del directorio en el que nos encontramos.

Haciendo uso de la estructura de directorios que creamos para ejemplificar, si nos encontrásemos en el directorio A, ubicado en /home/cristian/A, y quisiésemos movernos al directorio F, ubicado en la ruta /home/cristian/A/B/F, indicaremos la ruta desde donde nos encontramos hasta el directorio a donde nos queremos mover utilizando el directorio . como punto de partida y la ruta de todos los directorios hijos por los que deberá pasar hasta el directorio de destino. En este caso cd ./B/F, veamos…

De esta forma, nos ahorramos indicar toda la ruta desde la raíz para movernos hacia un directorio hijo.

Es posible también ejecutar el comando cd y no indicar como punto de partida el directorio especial en el que nos encontramos, pasando como parámetro los directorios hijos directamente, y el interprete lo entenderá ejecutando la orden. Acudo al ejemplo anterior para ejemplificar.

Como podemos observar, no me fue necesario indicar desde donde voy a partir cd ./B/F = cd B/F.

NOTA: Si indicamos una ruta relativa con / unicamente, el interprete entenderá que la ruta que estamos indicando inicia desde la raíz. Es un error muy común entres quienes inician en GNU/Linux querer moverse a un directorio hijo señalando la ruta con / en vez de ./ seguida de la ruta de directorios hijos.

Cambiar directorio usando ruta absoluta

El sistema de ficheros es una estructura jerárquica que en el caso de Linux tiene una raíz que se indica cuando se pone solamente el carácter barra / . La raíz contiene los directorios principales del sistema que a su vez tendrán subdirectorios en su interior, esta estructura de directorios se corresponde con el estándar de jerarquías de directorios FHS. Cuando se quiere indicar dónde se encuentra un elemento usando una ruta absoluta, tendré que indicarle todos los directorios por los que hay que pasar empezando desde la raíz del sistema, SIEMPRE.

Haciendo uso de la estructura de directorios creada para ejemplificar. Si nos encontramos en el directorio A, ubicado en /home/cristian/A, y nos queremos mover al directorio H, ubicado en /home/cristian/A/D/H, ejecutamos…

cd /home/cristian/A/D/H

Como vemos, la ruta hacia donde deseamos movernos se indica completa, desde la raíz y pasando por todos los elementos hasta el directorio destino. Sin importar en que posición del árbol de directorio nos encontremos.

Cambio a directorios enlazados

Para comprender el comportamiento y la función de los archivos y directorios enlazados en GNU/Linux es importante conocer y distinguir bien los tipos de enlaces con los que disponemos en la gestión de éstos, debido a que las opciones que nos ofrece el comando cd, están directamente vinculadas a este tema. Te comparto un articulo sobre tipos de enlaces, por si necesitas repasar o aprender sobre ello.

Como bien sabemos no es común encontrarnos con enlaces físicos de directorios, por lo que a la hora de hacer un cambio de directorios sobre un enlace, podremos hacerlo de dos maneras: siguiendo al enlace simbólico o siguiendo la ruta a donde apunta el enlace simbólico.

Cambiar directorio siguiendo enlace simbólico

El comando cd, nos permite acceder a los enlaces simbólicos sin llevarnos a la ruta hacia donde estos apuntan. Si bien es lo que el comando hace por defecto, la la opción -L indica este procedimiento. Veamos un ejemplo.

Como podemos observar en la siguiente lista de directorios, el directorio subrayado /sbin es un enlace simbólico que apunta al directorio físico /usr/bin, si ejecutamos el comando cd y pasamos como parámetro el directorio en cuestión, nos llevara al lugar físico del enlace.

cd /sbin o cd -L /sbin

De esta forma accedemos al contenido de directorio físico desde el enlace simbólico.

Cambiar al lugar físico del enlace simbólico

El comando cd nos permite acceder al directorio físico al que apunta un enlace simbólico haciendo uso de la opción -P, esta procesara la ruta hacia el directorio a donde apunta el enlace simbólico como si la hubiésemos indicado como parámetro.

hagamos uso del ejemplo anterior:

Si elegimos el enlace simbólico /sbin que apunta al directorio físico /usr/bin para explicar el ejemplo, ejecutamos…

cd -P /sbin

Donde observamos que nos llevo directamente al directorio al que apunta el enlace:

El parámetro -P cuenta con una opción -e que sirve para que nos imprima un estado si el directorio de trabajo no se puede determinar con éxito. Por ejemplo: Si el enlace simbólico esta roto.

Puedes unírtenos en el grupo de Facebook GNU/Linux Para Todos
Grupo en Telegram Novato en Linux

Espero sea de utilidad.
Saludos, Cristian.

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada.