El espacio en disco es uno de los recursos más críticos en cualquier sistema. Ya sea que administres servidores en producción, sistemas de escritorio o entornos de desarrollo, conocer cuánta información está almacenada en cada directorio te ayudará a anticiparte a los problemas causados por un espacio insuficiente, a mantener el sistema en un nivel de rendimiento óptimo y a tener un control más preciso sobre los archivos y carpetas que ocupan más espacio.
En esta entrada se mostrará como analizar el espacio en disco en Linux con du
(disk usage), explicando su uso en profundidad: desde el uso básico hasta combinaciones avanzadas con herramientas como sort
, head
, y grep
. También exploraremos algunos escenarios comunes, buenas prácticas y cómo automatizar algunas de estas tareas.
Tabla de contenidos
du
?El comando du
(disk usage) está diseñado para estimar y mostrar el uso del espacio en disco, tanto de archivos como de directorios. Forma parte del conjunto de herramientas básicas incluidas en casi todas las distribuciones GNU/Linux y sistemas UNIX, por lo que no es necesario instalar ningún paquete adicional para utilizarlo. Su formato básico es el siguiente:
du [opciones] [ruta]
Si lo ejecutas sin opciones y sin indicar una ruta, el comando calculará recursivamente el tamaño de todos los subdirectorios en la ubicación actual, lo que probablemente genere una salida extremadamente extensa y difícil de manejar.
Para entenderlo mejor, conviene revisar sus opciones más útiles y cómo limitar su comportamiento antes de usar el comando.
Una de las primeras tareas que se pueden realizar con el comando du
es verificar cuánto espacio ocupa una carpeta específica. Para ello, no siempre es necesario mostrar el detalle completo de todos los subdirectorios anidados.
Podemos limitar la profundidad con la opción --max-depth
. Si se indica un valor de 1
, solamente se mostrará el tamaño de la ruta especificada y sus subdirectorios directos. Por ejemplo, para conocer cuánto espacio ocupa cada carpeta dentro de una ruta dada, se puede usar el siguiente comando:
du -h --max-depth=1 /ruta/al/directorio
En este caso se han indicado dos opciones:
-h
o --human-readable
: Presenta los tamaños en formato comprensible como K (kilobytes), M (megabytes), G (gigabytes). Si se omite, los tamaños se mostrarán en bloques, lo que puede resultar poco intuitivo.--max-depth=1
: Limita la recursividad a un nivel por debajo de la ruta especificada.Así, para saber cuánto espacio ocupa la carpeta de un usuario, solo se debe ejecutar el siguiente comando:
du -h --max-depth=1 /home/usuario
Este comando generará una lista con el tamaño total de cada subcarpeta dentro de `/home/usuario, lo que resulta ideal para tener una visión general del uso del espacio sin entrar en demasiados detalles.
En algunos casos puede interesarte un análisis un poco más profundo, por ejemplo, para ver carpetas y subcarpetas sin llegar al fondo completo de la jerarquía. Para ello, basta con aumentar la profundidad a dos niveles:
du -h --max-depth=2 /ruta/al/directorio
La principal ventaja de este enfoque es que permite identificar cuáles son las subcarpetas que más espacio ocupan dentro de otras, obteniendo al mismo tiempo una vista jerárquica más completa sin sobrecargar la salida.
/var
Para saber cuánto ocupan las diferentes carpetas dentro, por ejemplo, de `/var, puedes utilizar el siguiente comando:
du -h --max-depth=2 /var
Esto permite ver no solo el tamaño total de /var/log
, sino también los componentes más pesados dentro de ese directorio. Una posible salida de este comando sería algo como lo siguiente:
300M /var/log/journal 150M /var/log/apache2 500M /var/log 100M /var/cache/apt 600M /var/cache 2.0G /var
Cuando tienes muchos directorios, es útil ordenarlos para detectar rápidamente cuáles consumen más espacio. Para ello, puedes combinar du
con sort
:
du -h --max-depth=1 /ruta | sort -hr
En este caso, la salida del comando du
se redirige al comando sort, al cual se le indican dos opciones:
-h
: Usa un orden “humano” o natural, respetando el formato de tamaños como K, M, G.-r
: Invierte el orden para mostrar primero las carpetas que más espacio ocupan.Si solo te interesa conocer, por ejemplo, las cinco carpetas que más espacio ocupan se puede limitar la salida con head
:
du -h --max-depth=1 /ruta | sort -hr | head -n 5
Esto comando es particularmente útil cuando se necesita liberar espacio rápidamente y hay que decidir por dónde empezar.
En algunos contextos, especialmente cuando se generan reportes o se usan scripts automatizados, es preferible tener tamaños en unidades fijas. Para ello se puede reemplazar la opción -h
por -k
para usar kilobytes o -m para usar megabytes. Por ejemplo, en megabytes el comando seria:
du -m --max-depth=1 /ruta/al/directorio
Estos valores son ideales para almacenar en archivos CSV o alimentar scripts que dependan de valores numéricos sin sufijos.
Si quieres omitir ciertos archivos o directorios durante el escaneo, puedes usar la opción --exclude
:
du -h --max-depth=1 --exclude=tmp /ruta/al/directorio
Incluso puedes usar comodines:
du -h --max-depth=2 --exclude='*.log' /var
Esto excluye todos los archivos .log
al hacer los cálculos. Una opción ideal si estás analizando directorios que acumulan archivos temporales o de registro que no necesitas considerar.
Si en la ruta hay carpetas a las que no se tiene permiso de acceso, los mensajes de error pueden saturar la salida. Para evitar esto, puedes redirigir los errores estándar (stderr) a /dev/null
usando `2>/dev/null. El comando quedaría así:
du -h --max-depth=1 /ruta/al/directorio 2>/dev/null
Esto es especialmente útil en sistemas con múltiples usuarios o donde algunos directorios están protegidos por permisos más restrictivos. Así, puedes centrarte solo en los datos relevantes sin distracciones por errores de acceso.
Puedes usar scripts que ejecuten du
y guarden los resultados periódicamente. Por ejemplo, para ver cómo evoluciona el espacio usado por un usuario con el tiempo se puede crear un script como el siguiente:
#!/bin/bash fecha=$(date +%Y-%m-%d) du -h --max-depth=1 /home/usuario | sort -hr > /home/usuario/uso_disco_$fecha.txt
Guarda esto como reporte_disco.sh
y dale permisos:
chmod +x reporte_disco.sh
Agrégalo al crontab
:
crontab -e
Y añade:
0 1 * * * /home/usuario/reporte_disco.sh
Esto generará un informe cada noche a la 1 a.m.
En resumen, la tabla siguiente presenta un compendio de todos los comandos analizados en la entrada.
Objetivo | Comando |
---|---|
Ver uso a primer nivel | du -h --max-depth=1 /ruta |
Ver uso a segundo nivel | du -h --max-depth=2 /ruta |
Ordenar por tamaño | du -h --max-depth=1 /ruta | sort -hr |
Ver las 5 carpetas más grandes | du -h --max-depth=1 /ruta | sort -hr | head -n 5 |
Ver en MB o KB exactos | du -m --max-depth=1 o du -k --max-depth=1 |
Excluir archivos o carpetas | du -h --exclude=tmp /ruta |
Ocultar errores de permisos | du -h /ruta 2>/dev/null |
El comando du
es mucho más que una simple herramienta de consola: es un aliado indispensable para quienes quieren o necesitan mantener bajo control el uso del disco en sistemas Linux. Su flexibilidad, combinada con herramientas como sort
, head
y ncdu
, lo convierte en una solución ideal tanto para revisiones puntuales como para análisis regulares y automatizados.
Ya sea que estés limpiando tu portátil personal o administrando servidores empresariales, dominar de este comando te permitirá optimizar el almacenamiento, prevenir errores y trabajar con mayor seguridad.
Recuerda revisar periódicamente el uso del disco, automatizar reportes y tomar medidas antes de que surjan los problemas. Con las herramientas correctas, mantener tu sistema limpio y ordenado es más fácil de lo que parece.
Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.
Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…
En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…
En casi cualquier análisis estadístico —ya sea en medicina, psicología, economía o ciencia de datos—…
El MSCI World Index suele presentarse como “la ventana al mundo” para quienes invierten en…
En el mundo del análisis de datos solemos escuchar una idea poderosa: cuantos más datos,…
¿Te has encontrado con este error al intentar instalar paquetes con npm? npm ERR! code…
This website uses cookies.