Guía avanzada del usuario

Directorios y jerarquía

Hasta ahora ha aprendido a listar, copiar, renombrar y eliminar archivos. Sin embargo, se estará preguntando acerca de aspectos más complicados, como por ejemplo ¿dónde se encuentran dichos archivos? Esta sección explica la jerarquía del directorio. Lea con atención el siguiente texto, y después realice los ejemplos de las secciones siguientes.

Jerarquía de directorios

Los archivos se agrupan en directorios, que a su vez se organizan en una jerarquía. En la cima de la jerarquía está el directorio "raíz", representado por "/".

Como se muestra en el ejemplo de la Figura 3-1, cada directorio del sistema de archivos puede incluir muchos otros directorios. La convención consiste en distinguir niveles de directorio mediante el carácter /. Teniendo esto en cuenta, observe que el directorio/ (raíz) contiene entre otros los subdirectorios /usr, /bin, /home y /lib. El subdirectorio /home contiene user1, user2, y user3.

Los directorios (y los archivos que hay en su interior) se especifican incluyendo el nombre de los directorios en los que están. A esto se le llama nombre de ruta. de acceso. Por ejemplo, el nombre de la ruta de acceso del directorio user3 de la próxima figura es /home/user3.

Figura 3-1 Jerarquía del sistema de archivos

Graphic

Todos los subdirectorios y nombres de archivo que incluya un directorio deben ser únicos. Sin embargo, los nombres pertenecientes a directorios diferentes pueden ser iguales. Por ejemplo, el directorio /usr contiene el subdirectorio /usr/lib. No hay ningún conflicto entre /usr/lib y /lib porque los nombres de ruta de acceso son diferentes.

Los nombres de ruta de acceso de los archivos trabajan exactamente igual que los nombres de ruta de acceso de los directorios. El nombre de ruta de acceso de un archivo describe la posición que ocupa dentro de la jerarquía del sistema de archivos. Por ejemplo, si el directorio /home/user2 contiene un archivo llamado report5, el nombre de ruta de acceso será /home/user2/report5. Esto indica que el archivo report5 está dentro del directorio user2, que a su vez está incluido en el directorio home, que se encuentra en el directorio raíz (/).

Los directorios pueden contener sólo directorios, sólo archivos, o ambos.

Imprimir el directorio en uso (pwd)

El comando pwd (print working directory) le indica donde se encuentra dentro de la jerarquía del sistema de archivos:

$ pwd
/home/user1

El resultado que obtenga será algo diferente al del ejemplo, ya que la estructura de su directorio es diferente. Recuerde que el directorio en uso es su posición actual dentro de la jerarquía del sistema de archivos.

Directorio de usuario

Cada usuario tiene un directorio de usuario. Cuando abre por primera vez la ventana de la Herramienta de comandos o la Herramienta del shell en el entorno OpenWindows, la posición inicial en que se encuentra (directorio en uso) es su directorio de usuario. Dicho directorio lo estableció el administrador de su sistema cuando creó su cuenta de acceso.

Cambiar el directorio en uso (cd)

El comando cd (change directory) le permite moverse dentro de la jerarquía del sistema de archivos:

$ cd /usr/lib
$ pwd
/usr/lib

Si escribe el comando cd solamente, volverá al directorio de usuario. Por ejemplo, si éste era /home/user1:

$ cd
$ pwd
/home/user1

En el shell C, el signo tilde (~) se usa como un método abreviado para especificar el directorio de usuario. Por ejemplo, para cambiar el subdirectorio music deberá escribir lo siguiente dentro del directorio de usuario:

example% cd ~/music

También puede usar dicho método abreviado para especificar el directorio de usuario de otro usuario. Por ejemplo:

example% cd ~nombre_del_usuario

donde nombre_del_usuario es el nombre de entrada de otro usuario, y cambiaría al directorio de usuario de dicho usuario.


Nota -

Si está utilizando el shell Bourne, el método abreviado ~ no funcionará.


Si está usando el shell Bourne, es posible que el administrador de su sistema lo haya configurado para que pueda escribir $home para especificar su directorio de usuario. Si éste es el caso, escriba:

$ $home/music

esto le trasladará al subdirectorio music del directorio de usuario. Del mismo modo, si escribe:

$ $home/nombre_del_usuario

se trasladará al directorio de usuario del usuario que haya especificado, donde nombre_del_usuario representa el nombre de entrada del otro usuario..

El directorio situado justo "por encima" de un subdirectorio se denomina directorio maestro. En el ejemplo anterior, /home es el directorio maestro de /home/user1. El símbolo.. ("punto, punto") representa el directorio maestro. Por lo tanto, el comando cd .. cambia el directorio en uso al directorio maestro, como muestra este ejemplo:

$ pwd
/home/user1
$ cd ..
$ pwd
/home

Suponga que su directorio en uso actual es /home/user1 y desea trabajar con varios archivos en /home/user2. El siguiente método abreviado podrá serle útil:

$ pwd
/home/user1
$ cd ../user2
$ pwd
/home/user2

../user2 ordena al sistema buscar user2 en el directorio maestro. Como puede observar, esto resulta más sencillo que escribir el nombre de ruta de acceso /home/user2 entero.

Crear un directorio (mkdir)

Crear un directorio nuevo es fácil. Escriba el comando mkdir seguido del nombre del nuevo directorio:

$ mkdir veggies
$ cd veggies
$ mkdir broccoli
$ cd broccoli
$ pwd
/home/user2/veggies/broccoli

Nombres de ruta de acceso relativos

El nombre de ruta de acceso completo de un directorio o de un archivo comienza por un signo (/) y describe toda la estructura del directorio comprendida entre dicho archivo (o directorio) y el directorio raíz. Sin embargo, a menudo puede usar un nombre mucho más corto que define el archivo o directorio en relación con el directorio actual en uso.

Cuando se encuentre en el directorio maestro, puede desplazarse a un subdirectorio utilizando sólo el nombre del directorio y no el nombre de ruta de acceso completo. En el ejemplo anterior, el comando cd veggies usa el nombre de ruta de acceso relativo del directorio veggies. Si el directorio en uso actual es /home/user2, el nombre de ruta de acceso completo de este directorio es /home/user2/veggies.

Intente crear varios subdirectorios diferentes y después muévase por ellos dentro de la estructura del directorio. Use los nombres de ruta de acceso completos y los nombres de ruta de acceso relativos y confirme su posición con el comando pwd.

Mover y renombrar directorios

Un directorio se renombra moviéndolo a un nombre diferente. Use el comando mv para renombrar archivos:

$ pwd
/home/user2/veggies
$ ls
broccoli
$ mv broccoli carrots
$ ls
carrots

También puede usar mv para mover un directorio a una posición de otro directorio:

$ pwd
/home/user2/veggies
$ ls
carrots
$ mv carrots ../veggies2
$ ls ../veggies2
carrots

En este ejemplo, el directorio carrots se mueve de veggies a veggies2 con el comando mv

Copiar directorios

Use el comando cp -r para copiar directorios y los archivos que contengan:

$ cp -r veggies veggies3
$

Este comando copia todos los archivos y directorios dentro del directorio veggies en un nuevo directorio veggies3. Esta es una copia recursiva, como designa la opción -r. Si intenta copiar un directorio sin usar esta opción, aparecerá un mensaje de error.

Eliminar directorios (rmdir)

Para eliminar un directorio vacío utilice el comando rmdir como sigue:

$ rmdir veggies3
$ 

Si el directorio contiene todavía archivos o subdirectorios, el comando rmdir no lo eliminará.

Use rm -r (agregando la opción recursiva -r al comando rm) para eliminar un directorio y su contenido, incluyendo cualquier subdirectorio y sus archivos, del modo siguiente:

$ rm -r veggies3
$


Precaución - Precaución -

GraphicLos directorios eliminados con el comando rmdir no pueden recobrarse, igual que sucede con los directorios y su contenido eliminados con el comando rm -r.