Seleccionar página

Hoy vamos a ver dos cosas: como movernos en el árbol de directorios y otros comandos útiles para manipularlos

Que es un directorio

Pues de forma básica es eso que conocemos en Windows como carpeta (para mí siempre serán directorios a pesar de Microsoft J). En la Wikipedia podemos encontrar esta definición de directorio:

En informática, un directorio es un contenedor virtual en el que se almacenan una agrupación de archivos informáticos y otros subdirectorios, atendiendo a su contenido, a su propósito o a cualquier criterio que decida el usuario. Técnicamente, el directorio almacena información acerca de los archivos que contiene: como los atributos de los archivos o dónde se encuentran físicamente en el dispositivo de almacenamiento.

En resumen, es una estructura jerárquica en forma de árbol donde el elemento que está más “abajo” es el directorio raíz, definido por el símbolo “/” y del que parten como ramas el resto de directorios. De estos directorios parten, si los hay, los subdirectorios. La dirección completa de un directorio se le denomina ruta, por ejemplo: “/home/miusuario/Documentos” hace referencia al subdirectorio “Documentos” que se encuentra dentro del subdirectorio “miusuario” que a su vez está dentro del directorio “home” que parte del directorio raíz.

Si ejecutamos ls -la en el terminal de Linux veremos que lo primero que aparece en la lista es algo así como dos directorios que se llaman “.” o “./” y “..” o “../”.

Son referencias o punteros al directorio actual (.) y al directorio padre del actual (..). En el primer caso, si queremos referirnos al directorio donde nos encontramos podemos hacerlo de la siguiente manera: “/home/Ubuntu/Documentos/” o sencillamente con “./”.

Los dos puntos los usaremos para movernos o referenciar al directorio anterior. Por ejemplo, para mostrar su contenido ejecutaremos lo siguiente: ls -l ..

Comandos con directorios

pwd

Lo primero es saber dónde nos encontramos. Saber dónde estamos es muy sencillo y hay dos formas:

  1. En el prompt de la consola aparece la ruta actual:

  1. Ejecutamos el comando “pwd” y su salida será la ruta actual:

tree

Existe una utilidad que nos permitirá ver muy gráficamente la estructura completa de directorios: “tree”. Normalmente no está instalada por defecto por lo que debemos ejecutar sudo apt install tree para disponer de ella.

ls

Este comando fundamental nos muestra la lista de ficheros, directorios, subdirectorios, etc. que se encuentran dentro de un directorio.

Si lo ejecutamos “tal cual” nos mostrará una lista columnada del contenido del directorio donde nos encontremos en ese momento:

Hay algunos modificadores/parámetros muy útiles que nos permitirán ver más información:

Parámetro Uso
-l Formato de lista larga. Muestra los atributos, fecha de creación y tamaño además del nombre
-a Muestra el contenido oculto (ficheros o directorios cuyo nombre empieza con un punto “.”)
-h Facilita la lectura de los tamaños de archivos mostrándolo en unidades (ejemplos: 1K, 32M, 2.1G)
-r Lista en orden inverso
-t Ordena por fecha de modificación del archivo
-R Lista recursivamente los directorios que existan como hijos del actual

Por ejemplo, para listar los log del sistema ordenados de forma inversa por antigüedad (abajo los más nuevos) ejecutaremos: ls -ltr /var/log/*.log

Esto nos permite localizar rápidamente el últimos o últimos log modificados.

Si queremos mostrar todo el contenido de un directorio, incluidos ficheros ocultos ejecutaremos: ls -la

Como podéis ver, estamos agrupando distintos parámetros después de un único guion “-“, es decir ls -l -a es exactamente lo mismo que  ls -la.

También disponemos en la mayoría de las distribuciones definidos unos alias, que no son más que nombres de pseudo-comandos que cuando los invocamos realmente ejecutan el comando que tengan definido en el alias. Por ejemplo: alias l=’ls -CF’. Esto significa que si ejecutamos “l” es como si hubiéramos ejecutado “ls -CF”.

Normalmente tendremos los siguientes alias creados:

  • alias ls=’ls –color=auto’
  • alias ll=’ls -alF’
  • alias la=’ls -A’
  • alias l=’ls -CF’

Siempre podremos personalizarlos editando el fichero “.bashrc” en nuestro home.

cd

El comando “cd” (del inglés change directory) es el que usaremos para hacer precisamente eso: cambiar de directorio. Es un comando tan básico del sistema que está incluido en las Shell, no es un ejecutable binario como muchos otros comandos que solemos ejecutar. Su funcionamiento es muy sencillo: solo debemos teclear el comando y como único parámetro el directorio al que queremos ir. Ejemplos:

cd /home/miusuario/Documentos Nos moveremos al directorio /home/miusuario/Documentos independientemente de donde estemos en ese momento
cd .. Nos movemos al directorio anterior o directorio padre del que nos encontremos en ese momento. Suponiendo que en este momento estemos en el directorio /home/miusuario/Documentos nos moveremos al directorio /home/miusuario
cd ../.. Nos movemos dos directorios atrás en la estructura. Suponiendo que estemos en /home/miusuario/Descargas nos llevará a /home
cd .. /Descargas Nos movemos a un subdirectorio paralelo al que nos encontramos. Suponiendo que en este momento estemos en el directorio /home/miusuario/Documentos nos moveremos al directorio /home/miusuario/Descargas
cd – Nos moveremos al directorio que estuviéramos anteriormente. Si lo ejecutamos después de la instrucción anterior nos llevará de vuelta a /home/miusuario/Documentos
cd Nos lleva al home o directorio de trabajo del usuario

mkdir

Con el comando mkdir (make directory) seguido de un nombre crearemos un directorio con ese nombre siendo el padre el directorio actual. En el siguiente ejemplo vemos como hemos creado un subdirectorio llamado “otrodir” dentro del directorio “/home/ubuntu/Documentos” y cómo podemos ver tanto con “ls” como con “tree” los cambios ocurridos:

rmdir

Este comando funciona de forma similar al anterior con la importante diferencia que con rmdir (remove directory) vamos a eliminar un directorio/subdirectorio. En este ejemplo vemos como eliminamos el directorio creado anteriormente y como vemos los cambios con “ls” y con “tree”:

Es importante recordar esto: el directorio que queramos eliminar debe de estar vacío tanto de otros subdirectorios como de ficheros. En caso de que debamos eliminar una estructura completa tenemos un MUY PELIGROSO COMANDO que hacer un borrado recursivo incondicional que si ejecutamos en el lugar erróneo podemos llevarnos por delante el sistema operativo. Para que veáis lo peligroso que es no os lo voy a poner aquí…aunque os he dado suficientes pistas para que lo encontréis J.

Resumiendo, tenemos los siguientes comandos con los que debemos de familiarizarnos:

  • pwd: ¿dónde estoy?
  • tree: para ver la estructura del árbol de directorios
  • ls: para ver el contenido de un directorio
  • cd: para moverme por el árbol de directorios
  • mkdir: para crear un directorio
  • rmdir: para eliminar un directorio

En la próxima entrega veremos algunos directorios de la estructura de Linux que debemos de conocer por su importancia y que nos encontraremos allí.