CLI AI

¿Qué carpeta se come el disco? du, ordenado por tamaño

2026-05-22

du -h --max-depth=1 . | sort -rh te da un nivel del árbol, el más grande primero. Luego repites esto dentro de la entrada más grande hasta encontrar al culpable. Ese descenso —no un comando ingenioso— es la técnica.

1. Un nivel, el más grande primero

clai
$ clai muestra el tamaño de las carpetas aquí, un nivel de profundidad, el más grande primero→ du -h --max-depth=1 . | sort -rh348K	.296K	./a52K	./c

sort -rh ordena correctamente los tamaños legibles para humanos — sabe que 2G supera a 900M, algo que un sort -r normal no sabe.

2. Ve donde está el tamaño

clai
$ clai ahora haz lo mismo dentro de la carpeta más grande→ du -h --max-depth=1 ./a | sort -rh

Dos o tres iteraciones de esto suelen bastar para dar con la respuesta. Es más rápido que un escaneo completo del árbol porque nunca lees las ramas que no importan.

3. No cuentes otros sistemas de archivos

clai
$ clai tamaño total de / pero quédate solo en este sistema de archivos→ du -shx /348G	/

-x evita que du descienda a otros puntos de montaje. Sin él, un escaneo de / se mete en /mnt, unidades de red y bind mounts, y devuelve un número que no tiene nada que ver con el disco que intentas liberar.

4. Los archivos individuales más grandes

clai
$ clai encuentra los 10 archivos más grandes bajo /var→ sudo find /var -xdev -type f -printf '%s\t%p\n' | sort -rn | head -10

A veces no es una carpeta, es un log de 40 GB. -xdev es el equivalente de find a du -x.

5. Explóralo de forma interactiva

clai
$ clai navega el uso de disco de forma interactiva bajo /var→ ncdu -x /var

ncdu escanea una vez y te deja recorrer el árbol con las flechas, borrando sobre la marcha. Si vas a ejecutar du más de dos veces, instálalo en su lugar.

6. Ejecútalo donde tenga permiso para leer todo

clai
$ clai escanea / por tamaño de carpetas sin ruido de permisos→ sudo du -h --max-depth=1 -x / 2>/dev/null | sort -rh | head

Sin sudo, du omite en silencio los directorios a los que no puede entrar y subestima el resultado. Con él, 2>/dev/null oculta el ruido de los archivos que desaparecen a mitad del escaneo.

Trampas habituales

  • du mide bloques asignados, no el contenido de los archivos. Un millón de archivos de 1 byte ocupan mucho más que un millón de bytes. du --apparent-size muestra el otro número.
  • Si du y df discrepan mucho, detente. Es otro problema: archivos borrados que siguen abiertos, o inodos agotados. Ver el artículo enlazado.
  • --max-depth es exclusivo de GNU. En macOS el equivalente es du -d 1, y sort -rh necesita un BSD sort reciente o coreutils.

Preguntas relacionadas

¿Por qué du es tan lento? Hace stat de cada archivo del árbol. En sistemas de archivos de red o con millones de archivos pequeños esto es realmente lento — acota la ruta o usa ncdu, que al menos cachea el escaneo.

¿Cuál es la diferencia entre du -s y du -h --max-depth=1? -s imprime un total para toda la ruta; --max-depth=1 imprime una línea por cada hijo. Usa -s cuando ya sabes dónde mirar.

¿Cómo encuentro carpetas que superan cierto tamaño? Pásalo por awk: du -m --max-depth=2 . | awk '$1 > 1000' lista todo lo que supera 1 GB.

Ver también

Pide los tamaños de carpeta que quieres y CliAI escribe el du, el sort -rh y el -x. Instálalo en una línea.