Dominando el comando du en Linux

Introducción

Quedarse sin almacenamiento disponible en un entorno de producción puede paralizar servicios críticos en cuestión de segundos. En esas situaciones de emergencia, localizar con exactitud qué carpetas o ficheros están devorando los bloques del sistema de archivos resulta indispensable. Lejos de repasar fríamente la documentación oficial del manual, este artículo propone un enfoque directo y práctico: aprenderemos a exprimir el comando du mediante ejemplos reales que resuelven los problemas habituales de almacenamiento en servidores Linux.

1. Configuración del entorno de pruebas y sintaxis esencial de du

Para experimentar de forma segura sin comprometer datos reales, comenzamos preparando una estructura de directorios poblada con archivos ficticios de tamaño controlado mediante mkdir -p /tmp/du_demo/logs /tmp/du_demo/backup && truncate -s 10M /tmp/du_demo/backup/data.bin && truncate -s 5M /tmp/du_demo/logs/app.log.

Estructura de prueba generada con mkdir y truncate

La utilidad du (disk usage) inspecciona el espacio asignado a directorios y sus contenidos recursivos, expresando por omisión las cifras en bloques de 1024 bytes.
Al invocarse sin modificadores, despliega la lista jerárquica de carpetas junto con su respectiva huella de almacenamiento numérico bruto.
⚙️ [Parámetros fundamentales]

-h : Convierte los valores crudos a unidades legibles para las personas (K, M, G).
-a : Computa y muestra ficheros individuales, no solo estructuras de directorio.
-s : Condensa el cómputo total en una sola línea sin desglosar el árbol interior.
-d : Delimita la profundidad jerárquica de exploración de carpetas.
-c : Agrega un renglón final con la sumatoria global calculada.
-b : Presenta la longitud real en bytes (tamaño aparente) en vez del consumo en bloques de disco.

Salida básica del comando du

Al incorporar el modificador -h (--human-readable), los bloques de almacenamiento se transforman automáticamente en múltiplos comprensibles como KiB, MiB o GiB.
Este ajuste visual agiliza enormemente el diagnóstico preliminar al evitar tener que interpretar cifras kilométricas de bloques de memoria.

Resultado de du con formato legible gracias a -h

2. Delimitación de niveles jerárquicos y consolidación de totales (-d, -s, -c)

Para evaluar cómo restringir la recursividad en árboles de directorios profundos, creamos varias capas anidadas ejecutando mkdir -p /tmp/du_demo/nested/level1/level2 && truncate -s 2M /tmp/du_demo/nested/level1/level2/dummy.bin.

Creación de subdirectorios multinivel de muestra

El parámetro -d 1 (--max-depth=1) restringe el análisis estrictamente al primer nivel de carpetas inmediatas bajo la ruta indicada.
Esta restricción es perfecta para evitar que la terminal se inunde con cientos de subdirectorios irrelevantes, permitiendo evaluar el peso de cada división principal al instante.

Limitación de niveles de exploración mediante -d 1

Cuando solo se requiere conocer la ocupación global sin entrar en detalles de sus subelementos, la opción -s (--summarize) comprime todo el cálculo a una única fila resumen.
Al combinarlo con -h, obtenemos una visualización inmediata y limpia del peso total acumulado por el directorio evaluado.

Resumen conciso del volumen global con du -sh

Añadir el flag -c (--total) añade un balance global al final del listado bajo la etiqueta total.
Resulta sumamente práctico cuando deseamos examinar el desglose por componente y al mismo tiempo verificar el cómputo consolidado de todo el lote.

Cálculo discriminado con sumatoria global activada con -c

3. Inspección detallada de archivos y omisión selectiva (-a, –exclude)

Con el fin de simular filtros sobre extensiones transitorias o de depuración, generamos un par de archivos residuales ejecutando touch /tmp/du_demo/temp1.tmp /tmp/du_demo/temp2.tmp.

Creación de elementos temporales auxiliares

De forma predeterminada, du ignora los ficheros individuales y solo lista carpetas; no obstante, el argumento -a (--all) fuerza el reporte de cada archivo presente en la jerarquía.
Combinado con -h, este ajuste facilita una radiografía pormenorizada del peso exacto de cada archivo ubicado, por ejemplo, dentro de /tmp/du_demo/logs.

Inspección detallada de ficheros individuales con du -ah

La directiva --exclude descarta del cómputo aquellos patrones o extensiones que no nos interesa auditar.
Por ejemplo, indicando --exclude='*.tmp' le ordenamos al motor de búsqueda que ignore por completo los archivos temporales (.tmp), reportando únicamente el uso atribuible a datos definitivos.

Filtrado selectivo excluyendo extensiones temporales

4. Escenarios avanzados en producción: ordenamiento jerárquico y detección de cuellos de botella

Para ilustrar una búsqueda forense de archivos gigantescos que saturan particiones, creamos un par de archivos pesados adicionales ejecutando truncate -s 50M /tmp/du_demo/backup/big.tar && truncate -s 20M /tmp/du_demo/logs/access.log.

Inyección de archivos voluminosos para pruebas de ordenamiento

Canalizando la salida de du -h -d 1 /tmp/du_demo hacia sort -hr mediante una tubería (|), organizamos las carpetas de primer nivel en orden descendente según su volumen real.
Este flujo de trabajo revela en milisegundos qué sector del sistema de archivos está concentrando la mayor proporción de espacio consumido.

Clasificación descendente de directorios por tamaño

Si ampliamos el alcance combinando du -ah /tmp/du_demo, encadenamos el resultado con sort -hr y acotamos la visualización a los primeros hallazgos mediante head -n 5, aislaremos los 5 archivos o directorios más masivos de la ruta.
Esta canalización es el recurso estándar de todo administrador de sistemas a la hora de cazar culpables ante una alerta crítica de almacenamiento.

Aislamiento del top 5 de elementos más voluminosos

Una vez completadas las pruebas, conviene purgar el árbol de trabajo temporal ejecutando rm -rf /tmp/du_demo para mantener limpio el entorno de almacenamiento.

Eliminación y saneamiento del entorno de prueba

Con este recorrido táctico hemos explorado los modificadores clave y las cadenas de comandos más potentes asociadas a du en servidores Linux.
Integrar estas combinaciones en tus tareas habituales de mantenimiento garantizará una administración preventiva y certera de tus particiones de almacenamiento.