8.3.3.2. Órdenes para recorrer el Sistema de Ficheros

Desde el shell de Linux podemos movernos por todo el sistema de ficheros para buscar un directorio o archivo concreto. Pero para movernos por la estructura de directorios de nuestro sistema un primer paso es saber en cada momento donde nos encontramos. Para saber qué directorio es el directorio actual tenemos la orden pwd. Su nombre viene del inglés "print working directory" y su único cometido es el de mostrar por pantalla una línea que nos dice la ruta absoluta al directorio actual.

Una vez que ya sabemos en qué directorio nos encontramos podemos empezar a desplazarnos por el árbol de directorios con la orden cd. El nombre de cd le viene de "cambiar de directorio" (en inglés, "change directory") y sirve exactamente para lo que parece: cambia el directorio actual al que nosotros le especifiquemos en su argumento.

En este punto cabe destacar que, al igual que vimos en Windows, en Linux también podemos hacer referencia a los ficheros y directorios de 2 maneras:

  • Rutas absolutas. Se forman empezando en el directorio raíz y acabando en el punto al que queremos hacer referencia. Por ejemplo, si nuestro usuario se llama pepito y queremos hacer referencia a su directorio personal, la ruta absoluta sería /home/pepito.
  • Rutas relativas. Se forman usando los directorios especiales . y .. y empiezan siempre en el directorio actual. Como recordaréis, el directorio especial . hace referencia al directorio actual y el directorio especial .. hace referencia al directorio padre del actual. Así, si por ejemplo estamos situados en el directorio /etc y queremos ir al directorio personal de pepito, la ruta relativa sería ../home/pepito.

Por lo tanto, podemos usar la orden cd tanto con rutas absolutas como con rutas relativas.

Por ejemplo, estamos en el directorio /usr/share/man y queremos ir a /usr/bin. Tenemos las siguientes opciones:

$ cd /usr/bin

$ cd ../../bin

Una vez que estamos en un directorio concreto lo más probable es que queramos saber el contenido del directorio. Para ello disponemos de la orden ls. Su nombre viene de "listar" (en inglés, "list") y eso es precisamente lo que hace, listar el contenido de un directorio. Si le pasamos un argumento nos mostrará el contenido del directorio que le pasamos y si no, nos mostrará el contenido del directorio actual. La orden ls tiene multitud de opciones. A continuación vamos a ver las más destacadas:

  • ls -a muestra todos los archivos y directorios, incluso los ocultos (los que comienzan con un punto).
  • ls -l muestra un listado en el formato largo, con información de permisos (que ya explicaremos más adelante), número de enlaces duros asociados al archivo, usuario, grupo, tamaño en bytes y fecha de última modificación además del nombre.
  • ls -lh muestra la misma información que con la opción -l pero el tamaño del fichero se muestra en unidades más entendibles (K, M, G...).
  • ls -S muestra el contenido ordenado por tamaño de archivo.
  • ls -t muestra el contenido ordenado por la fecha de última modificación.
  • ls -r muestra el contenido ordenado de forma inversa.
  • ls -R muestra la estructura de directorios que cuelga del directorio actual o del que le pasemos como argumento.
  • ls -i muestra el número del inodo en el que están los datos de cada fichero o directorio. Si tenemos 2 ficheros que son enlaces duros del mismo fichero veremos que el número del inodo es el mismo.
  • ls -m muestra los ficheros y directorios en una sola fila, separados por comas.
  • ls -1 muestra los ficheros y directorios en una sola columna.
Las opciones pueden combinarse entre sí. Por ejemplo, si ejecutamos la orden ls -lSa se mostrará por pantalla el contenido del directorio actual ordenado por el tamaño de los ficheros (por la opción -S) mostrando también los archivos ocultos (por la opción -a) y en formato de lista larga (por la opción -l).
Icono IDevice Actividades

Actividad 1: Lista el contenido del directorio /usr, de tal forma que aparezcan también los archivos ocultos que pudiera haber.

Activicad 2: Muestra el contenido del directorio /etc e indica cuánto ocupa en K el archivo man.config.

Actividad 3: ¿Cuál es el archivo más grande del directorio /etc?

Actividad 4: ¿En qué inodo se encuentra el archivo ejercicio2.txt que tienes en el directorio Tema 1, que está dentro del directorio Ejercicios, dentro de alumno?

Actividad 5: Muestra el contenido del directorio /etc en una sola fila. Realiza después lo mismo, pero organizado en una sola columna.

Actividad 6: Muestra el contenido del directorio /etc de forma que muestre también los archivos ocultos, muestre los atributos de cada fichero o directorio y los ordene, además, según la fecha de última modificación.