Buscar tamaño de directorios ordenados

Introducción

En entornos Linux resulta fundamental conocer qué carpetas consumen más espacio en disco, sobre todo en servidores con capacidad limitada o al gestionar respaldos. En este artículo presentaremos un truco sencillo y potente para listar directorios ordenados por tamaño, empleando únicamente herramientas propias del sistema: du, sort y, de forma opcional, utilidades interactivas como ncdu o duf. Veremos ejemplos paso a paso, variantes avanzadas, integraciones con Bash y buenas prácticas para mantener tu disco sano y organizado.

1. Fundamentos: du y sort

La herramienta du (Disk Usage) calcula el espacio en disco de archivos y directorios. Su sintaxis básica:

du [OPCIONES] [ARCHIVO...]

Por su parte, sort permite ordenar líneas de texto según distintos criterios, incluyendo un modo numérico y human-readable (lectura por humanos).

Combinando ambas obtenemos un listado ordenado de directorios según su tamaño:

du -sh   sort -h
  • -s (summarize): muestra sólo el total de cada argumento.
  • -h (human-readable): muestra tamaños en KB, MB, GB.
  • sort -h: ordena respetando sufijos de tamaño (K, M, G).

2. Ejemplos prácticos

2.1 Listado en directorio actual

cd /ruta/a/tu/proyecto
du -sh   sort -h

Salida típica:

Tamaño Directorio/Archivo
4.0K config.yml
50M logs
1.2G backup_2024

2.2 Controlando profundidad

Para limitar el nivel de subdirectorios:

du -h --max-depth=1 /var  sort -h
  • –max-depth=1: sólo directorios de primer nivel bajo /var.

2.3 Filtrar tipos de archivo con find

Si buscas sólo directorios concretos o archivos grandes:

find /ruta -mindepth 1 -maxdepth 1 -type d -print0 
 xargs -0 du -sh  sort -h
  • -type d: selecciona sólo directorios.
  • -print0 y xargs -0: manejan nombres con espacios.

3. Automatización en Bash

Para no teclear siempre la misma línea, crea un alias o función en tu ~/.bashrc:

# Alias simple
alias dusort=du -sh   sort -h

# Función con opciones
dusf() {
  local dir={1:-.}
  local depth={2:-1}
  du -h --max-depth=depth dir 2>/dev/null  sort -h
}

Tras recargar tu shell (source ~/.bashrc), invoca dusort o dusf /ruta 2.

4. Herramientas interactivas

Si prefieres explorar visualmente, prueba:

  • ncdu: interfaz ncurses para navegar y eliminar archivos.
  • duf: alternativa moderna en Go con colores suaves.

Instala ncdu en Debian/Ubuntu con sudo apt install ncdu y ejecútalo:

ncdu /ruta/a/analizar

5. Buenas prácticas y consideraciones

  • Permisos: du sin permisos de lectura omitirá ciertas carpetas. Usa sudo si es crítico.
  • Unidades de red: montajes NFS o CIFS pueden ralentizar el comando. Considera du --apparent-size o limitarlos con --exclude.
  • Archivos borrados: si un proceso mantiene abierto un archivo eliminado, el espacio no aparecerá en el listado. Usa lsof L1 para detectarlos.
  • Automatización: integra estas llamadas en scripts de monitoreo o alertas por correo.

6. Resumen de comandos clave

Acción Comando
Listar tamaño de subdirectorios du -sh sort -h
Limitar profundidad du -h --max-depth=1 . sort -h
Filtrar con find find . -type d -print0 xargs -0 du -sh sort -h
Interfaz ncurses ncdu /ruta

Conclusión

Dominar du y sort es suficiente para diagnosticar rápidamente los mayores consumidores de espacio en tu sistema. Con los ejemplos y funciones presentados, ahorrarás tiempo y mantendrás un disco ordenado. Cuando necesites una aproximación interactiva, herramientas como ncdu o duf complementan perfectamente este flujo de trabajo. ¡Manos a la obra y que no te queden sorpresas al quedarte sin espacio!

Artículo creado para administradores y entusiastas de Linux. © 2024

  • Hola 👋 , soy la IA de Linuxmind.dev, te puedo ayudar a aprender.
Gathering thoughts ...

Leave a Reply

Your email address will not be published. Required fields are marked *