Este artículo fue publicado originalmente en go2linux.org el 1 de mayo de 2007. El dominio ya no me pertenece, pero soy el autor original. Lo republico aquí en garron.me con correcciones y mejoras.
Cuando necesitas saber cuánto espacio está usando un archivo o directorio, du (Disk Usage) es la herramienta correcta. Mientras que df te dice cuánto espacio libre queda en un sistema de archivos, du te dice qué está usando ese espacio.
Uso básico
du [opciones] [archivo o directorio]
Sin argumentos, du lista de forma recursiva el tamaño de cada archivo y directorio en el directorio de trabajo actual. Eso suele generar demasiada salida. En la práctica casi siempre se combina con opciones.
Opciones más útiles
Tamaños legibles (-h):
$ du -h /var/log
4.0K /var/log/apt/history.log
1.2M /var/log/syslog
8.0K /var/log/auth.log
Resumir un directorio (-s):
$ du -sh /var/log
48M /var/log
El modificador -s suprime el listado recursivo y muestra solo el total. Combinado con -h es la forma más rápida de verificar el tamaño de un directorio.
Mostrar totales por elemento en un directorio:
$ du -sh /var/*
4.0K /var/backups
48M /var/log
1.2G /var/lib
120M /var/cache
Este es probablemente el comando que más uso cuando el disco se está llenando y necesito encontrar qué está consumiendo el espacio.
Limitar la profundidad (--max-depth):
$ du -h --max-depth=1 /var
48M /var/log
1.2G /var/lib
120M /var/cache
1.4G /var
Útil cuando quieres ir profundizando nivel por nivel sin ahogarte en salida.
Mostrar el total general (-c):
$ du -sh -c /var/log /var/cache
48M /var/log
120M /var/cache
168M total
Encontrar los directorios más grandes
Este one-liner ordena la salida de du para mostrar los directorios más grandes primero:
du -h --max-depth=1 /var | sort -rh | head -10
El modificador sort -rh ordena los tamaños legibles en orden inverso (el más grande primero). Este es mi comando de cabecera cuando necesito encontrar qué está llenando un disco.
Otras opciones
-a— muestra el conteo de todos los archivos, no solo directorios-L— sigue los enlaces simbólicos y mide el destino, no el enlace en sí-x— se queda en un solo sistema de archivos (útil para no cruzar puntos de montaje)
du y df son una pareja natural — usa df -h para encontrar qué sistema de archivos está lleno, luego du -sh /ruta/* | sort -rh para encontrar qué lo está llenando.