Você está na página 1de 4

LECCION 6.1.

2 Cambio de directorios (cd)

Cambio de directorio. Comando cd

Este comando permite cambiar de directorio a partir del directorio actual de trabajo. Por ejemplo,
cd /home/Pedro En este ejemplo pasamos del directorio actual de trabajo al nuevo directorio
/home/Pedro, que será desde ahora nuestro nuevo
directorio.
cd dire Nos traslada al subdirectorio dire (que deberá existir como subdirectorio en el
directorio actual).
cd .. Retrocedemos un nivel en la jerarquía de directorios. Por ejemplo, si estamos
en /home/Pedro y usamos este comando, pasaremos al escalafón
inmediatamente superior de la jerarquía de directorios, en este caso a /home. Nota:
al contrario que en MS-DOS en Linux no existe la forma cd.. sin espacio entre cd
y los dos puntos.
cd Nos sitúa nuevamente en el directorio personal del usuario.

El comando cd no es un programa autónomo como son las mayorías de los comandos. El cd es un


comando interno del shell, a éstos comandos se le refiere como built-in y son parte del shell. La mayoría
de las veces el comando se usa en su forma más simple que es escribiendo “cd <nombre-directorio>”, para
el usuario cambiarse a ese directorio. En los siguientes ejemplos, el prompt del shell bash ha sido configurado
para desplegar información adicional. El prompt nos muestra el nombre de la cuenta (ivelis), seguido por el
nombre del host (maquina1), seguido por el directorio actual. Por ejemplo:

ivelis@maquina1:˜ >
cd /usr
ivelis@maquina1:
/usr>

Aquí el símbolo de tilde ˜ nos indica que nos encontramos en el directorio home de ivelis; /home/ivelis/.
El comando cd significa cambiar de directorio actual. El uso del punto sencillo (.) y el doble (..) permite hacer
referencia al directorio mismo y al directorio padre que contiene el directorio en el cual nos encontramos. Un
ejemplo del uso del (.) es:
$ ivelis@maquina1:/usr > cd ./share/man
$ ivelis@maquina1:/usr/share/man >

El .. le mueve al directorio padre:


$ ivelis@maquina1:/usr > cd ..
$ ivelis@maquina1:/usr /share>

Existe una clase especial de archivos llamados vínculos simbólicos (symbolic links). Estos archivos nor-
malmente contienen la ruta al archivo real pero también puede ser a un directorio. Si usamos el comando cd
para cambiar a un directorio representado por su vínculo simbólico, el vínculo es seguido automáticamente
al archivo cual el vínculo apunta. Por defecto, el comando cd usa la opción (-L) y nos muestra en nombre
vinculado simbólicamente. Si usamos la opción (-P), entonces el verdadero nombre del directorio es desple-
gado (los que son hard link).

Es típico que un usuario cambie de directorio y luego retorne a su directorio home. Como el shell recuer-
da su directorio previo, en una variable de nombre $OLDPWD, es posible moverse entre dos directorios dife-
rente usando la sentencia cd -. Por ejemplo, si su directorio anterior fué su directorio home, /home/ivelis, y
su directorio actual es /usr, entonces el comando “cd -” tendría el siguiente efecto:

$ ivelis@maquina1:/usr > cd -
/home/ivelis
$ ivelis@maquina1:/usr > cd -
/usr
$ ivelis@maquina1:/usr > cd -
/home/ivelis

Asociados con el comando cd están los comandos del shell dirs, pushd, y popd. El shell de bash mantie-
ne una lista de los directorios que ella recuerda. El comando dirs listará esta lista. El comando dir tiene el
siguiente sintaxis:
dirs [-clpv] [+N] [-N]

Esta lista de directorios funciona como una pila. El comando pushd empuja un directorio a la lista y el
comando popd lo quita de la lista. Aquí le proveemos un ejemplo de los comandos pushd y dirs. En éste ejem-
plo empezamos desde el directorio home (~) y navegamos a través de varios directorios del sistema.

$ ivelis@maquina1:/usr > dirs


~
$ ivelis@maquina1:/usr > pushd /etc
/etc ~
$ ivelis@maquina1:/usr > pushd /bin
/bin /etc ~
$ ivelis@maquina1:/usr > pushd /etc/opt
/etc/opt /bin /etc ~
$ ivelis@maquina1:/usr > dirs
/etc/opt /bin /etc ~

En éste momento tenemos ya cuatro directorios recordados. La opción (-l) le dice a dirs que no utilice
versiones acortadas de desplegar los directorios como es ~, para representar el directorio home.

$ ivelis@maquina1:/usr > dirs -l


/etc/opt /bin /etc /home/ivelis

La opción -v causaría que el comando dirs imprima cada directorio en su propia línea y asociada con un
número, así:
$ ivelis@maquina1:/usr > dirs -v
0 /etc/opt
1 /bin
2 /etc
3~

La opción (-p) es la misma que la (-v) pero sin las asociación de los números.

$ ivelis@maquina1:/usr > dirs -p


/etc/opt
/bin
/etc
~
Las opciones +N y -N despliegan la entrada número N empezando desde el cero (0). +N cuenta de
izquierda a derecha, y -N cuenta de derecha a izquierda, veamos éste ejemplo:
$ ivelis@maquina1:/usr > dirs +1
/bin
$ ivelis@maquina1:/usr > dirs -1
/etc

La opción (-c) limpia todos los elementos de la pila, pushd y popd le permiten al usuario manipulara la
pila del directorio. El comando pushd coloca el nombrado directorio en la cima de la pila, pushd sin ni gún
argumento causa que las dos entradas de directorios sean intercambiados igual que lo efectúa el comando “cd-
”. Las opciones disponibles al comando cd son:

pushd [dir | +N | -N]

La opción de pasar un dir (directorio) como argumento agregará el directorio a la cima de la pila y lo con-
vertirá en el directorio actual de trabajo o mejor conocido como el PWD.

$ ivelis@maquina1:/usr > pushd ~/compartidos/juegos/


~/compartidos/juegos ~

Las opciones +N y -N manipularan la pila para que el directorio número N éste encima de la pila y el
directorio actual. La opción +N empieza su conteo desde la izquierda de la lista y -N empieza desde la dere-
cha de la lista. Por ejemplo:

$ ivelis@maquina1:/usr > dirs


/home /bin /etc ~/compartidos/juegos ~
$ ivelis@maquina1:/usr > pushd +3
~/compartidos/juegos ~ /home /bin /etc

El comando popd remueve los directorios desde la pila. Sino se da ningún argumento, éste remueve los
directorios desde la cima de la pila y cambia el directorio actual del usuario llevandolo a la cima.

popd [+N | -N]


Las opciones +N y -N son similares a las opciones del comando pushd excepto que ellas remueven la
entrada número N de la pila. Por ejemplo:

$ ivelis@maquina1:/compartidos/juegos > dirs


~/compartidos/juegos /home /bin /etc
$ ivelis@maquina1:/compartidos/juegos > popd +3
~/compartidos/juegos /home /bin
$ ivelis@maquina1:/compartidos/juegos > dirs
~/compartidos/juegos /home /bin

Você também pode gostar