Cuando trabajas en Linux y empiezas a quedarte sin espacio en disco, la pregunta no es solo si el almacenamiento está lleno, sino qué directorio o archivo es el responsable. En mi experiencia diaria administrando servidores y entornos locales, más de una vez he tenido que localizar rápidamente carpetas enormes, detectar cuáles superaban 1 GB o simplemente entender en qué se estaba consumiendo el espacio.
En esta guía aprenderás cómo ver el tamaño de los directorios y archivos en Linux directamente desde la terminal. Analizaremos desde la sintaxis del comando du (Disk Usage) hasta combinaciones avanzadas con sort, grep y head para auditar tu sistema de forma rápida y sin perder tiempo.
Resumen rápido: Si necesitas saber cómo ver el tamaño de una carpeta en Linux o cuánto pesa un archivo en consola, el comando principal es
du -sh /ruta. Para ordenar directorios de mayor a menor y detectar los más pesados, la combinación ideal esdu -h --max-depth=1 | sort -hr.
Por qué el comando ls no basta para saber cuánto ocupa una carpeta
Si estás buscando el comando de Linux para mostrar el contenido de una carpeta o el listado de archivos, el primer recurso que viene a la mente es ls:
ls -lhDonde sus parámetros representan:
-l: Muestra el listado en formato largo y detallado (permisos, propietario, fecha).-h: Expresa el tamaño en un formato legible por humanos (human-readable:KB,MB,GB).
Esto funciona perfectamente para medir archivos individuales. Sin embargo, para saber cuánto pesa una carpeta en Linux, ls resulta engañoso: solo muestra el tamaño de la entrada del propio directorio en el sistema de archivos (habitualmente 4.0K o 4096 bytes), ignorando por completo el contenido acumulado dentro de esa carpeta.
Por esta razón, para averiguar el tamaño real de los archivos y carpetas en la consola de Linux, debemos utilizar el comando du.
Sintaxis y opciones del comando du: La forma correcta de ver el tamaño de directorios en Linux
El comando du (siglas de Disk Usage) es la herramienta estándar en sistemas Unix/Linux para calcular la ocupación real en disco de cualquier fichero o directorio. Su sintaxis básica es:
du [opciones] [archivo_o_directorio]Puedes consultar la documentación oficial ejecutando man du en tu terminal. Las opciones principales que usarás en el día a día son:
| Opción / Banderas | Descripción y uso principal |
|---|---|
-s (--summarize) | Muestra únicamente el resumen total acumulado del elemento especificado, sin detallar cada subdirectorio interno. |
-h (--human-readable) | Muestra los tamaños en unidades legibles (como K, M, G). |
-c (--total) | Imprime una fila adicional al final con el cálculo total consumido por todos los elementos indicados. |
--max-depth=N | Limita la profundidad del análisis a N niveles de subcarpetas, evitando volcado masivo de datos en pantallas extensas. |
Ejemplos prácticos: Cómo saber cuánto pesa una carpeta o archivo
Veamos los escenarios más habituales al analizar archivos y directorios desde la consola de Linux:
1. Ver el tamaño en bloques de archivos y carpetas
Al ejecutar du -s * dentro de tu directorio de trabajo, el comando muestra el peso en bloques estándar de 1 Kilobyte (1024 bytes):
[andres@localhost ~]$ du -s *
49180 androidemulator
604860 backup linux
19916 bucardo
4 bucardo.restart.reason.log
649532 Descargas
52240 Documentos
3722728 Dropbox
135196 glassfish-4.1
3852 Imágenes
32728 jre-oraclejava.rpm
620488 netbeans-8.0.2
25188 oo.war
750560 sts-bundle
452280 workspace2. Ver el tamaño de carpetas y archivos en formato legible (KB, MB, GB)
Para transformar esos bloques de números en lecturas comprensibles en Megabytes (M) o Gigabytes (G), añadimos la opción -h (du -sh *):
[andres@localhost ~]$ du -sh *
49M androidemulator
591M backup linux
20M bucardo
4,0K bucardo.restart.reason.log
635M Descargas
52M Documentos
3,6G Dropbox
133M glassfish-4.1
3,8M Imágenes
32M jre-oraclejava.rpm
606M netbeans-8.0.2
25M oo.war
733M sts-bundle
442M workspace3. Ver el total general acumulado con -c
Para obtener una suma total de todo el contenido analizado al final del listado, incorporamos la bandera -c (du -csh *):
[andres@localhost ~]$ du -csh *
49M androidemulator
591M backup linux
20M bucardo
635M Descargas
3,6G Dropbox
606M netbeans-8.0.2
733M sts-bundle
442M workspace
6,9G total4. Consultar cuánto pesa una carpeta en particular
Para consultar rápidamente el tamaño de una única carpeta en Linux (por ejemplo, la carpeta Dropbox), simplemente pasa su nombre o ruta como argumento:
du -sh DropboxSalida estimada:
3,6G Dropbox5. Limitar niveles de inspección con --max-depth
Cuando escaneas proyectos grandes con miles de subcarpetas (como directorios node_modules, carpetas vendor o repositorios git), puedes restringir el nivel de exploración con:
du -h --max-depth=1Esto imprimirá exclusivamente las carpetas hijas del primer nivel sin perder la precisión en el cálculo total.
Combinaciones avanzadas: Ordenar y detectar los directorios más pesados
La consola de Linux destaca cuando combinamos el comando du con otras utilidades mediante la tubería o pipe (|).
1. Ordenar directorios de mayor a menor tamaño
Si tu objetivo es detectar qué carpetas están saturando el espacio, puedes listar y ordenar los elementos de mayor a menor mediante sort -nr o sort -hr:
du -cs * | sort -nrSalida ordenada en la terminal:
[andres@localhost ~]$ du -cs * | sort -nr
8747536 total
3881532 Dropbox
2032968 Descargas
747856 sts-bundle
620488 netbeans-8.0.2
604860 backup linux
452280 workspace
135196 glassfish-4.1
89124 Documents
52240 Documentos
49180 androidemulator
32728 jre-oraclejava.rpm
25188 oo.war
19916 bucardo
3852 Imágenes
52 pgadmin.log
40 NetBeansProjects
8 Desktop
4 Vídeos
4 Público
4 Plantillas
4 Música
4 EscritorioSi estás empleando valores en formato legible (-h), puedes ordenarlos correctamente de mayor a menor usando sort -hr:
du -h --max-depth=1 | sort -hr2. Filtrar carpetas que pesan más de 1 GB
Para filtrar rápidamente y ver solo los directorios que superan 1 GB de espacio en disco, conecta grep a la salida de du:
du -csh * | grep GSalida obtenida:
[andres@localhost ~]$ du -csh * | grep G
3,6G Dropbox
6,9G total3. Mostrar el Top N de los archivos y carpetas más pesados
Para listar de inmediato los 3 elementos que más espacio consumen en tu sistema, añade head -3 al final de la cadena de comandos:
du -csh * | sort -nr | head -3Salida obtenida:
[andres@localhost ~]$ du -csh * | sort -nr | head -3
733M sts-bundle
635M Descargas
606M netbeans-8.0.2Tabla resumen (Cheat Sheet) de comandos para ver el tamaño de disco en Linux
Guardar esta tabla te servirá como referencia rápida cuando necesites auditar espacio en la terminal:
| Objetivo de búsqueda | Comando recomendado |
|---|---|
| Saber el tamaño de una carpeta o archivo específico | du -sh /ruta/del/directorio |
| Ver el tamaño de todo el contenido actual y el total | du -csh * |
| Ordenar carpetas de mayor a menor espacio (legible) | du -h --max-depth=1 | sort -hr |
| Listar solo directorios que pesan más de 1 GB | du -csh * | grep G |
| Obtener los 5 archivos o carpetas más pesados | du -csh * | sort -nr | head -5 |
| Ver el espacio libre de las particiones del disco | df -h |
| Navegador visual e interactivo en consola | ncdu |
Preguntas frecuentes y conceptos clave (FAQ)
- ¿Qué comando se usa para ver el tamaño de un directorio en Linux?
- du, especialmente con -sh.
- ¿Por qué ls no muestra el tamaño real de una carpeta?
- Porque solo muestra el tamaño del directorio, no de su contenido.
- ¿Cómo ver los directorios más pesados?
- Con du -h | sort -h -r.
- ¿du muestra el tamaño real o el espacio en disco?
- Muestra el espacio realmente ocupado en disco.
¿Linux muestra los tamaños en GiB o en GB?
Las herramientas nativas de Linux como du -h y df -h calculan por defecto el tamaño en potencias binarias de 1024. Esto significa que cuando observas 1G en la terminal, representa 1 Gibibyte (GiB) (1024^3 bytes = 1.073.741.824 bytes) y no el Gigabyte decimal estándar (GB = 1000^3 bytes). Si prefieres ver el cálculo en base decimal (1000), en GNU du puedes emplear la bandera --si.
¿Cuál es la diferencia entre los comandos du y df?
Ambos comandos se utilizan para analizar el almacenamiento en Linux, pero con propósitos distintos:
du(Disk Usage): Inspecciona y suma el tamaño de carpetas o archivos específicos recorriendo su estructura.df -h(Disk Free): Examina el estado general del sistema de archivos, indicando el espacio libre y ocupado en particiones de disco completas (como/,/homeo discos externos).
¿Por qué una carpeta vacía ocupa 4.0K en Linux?
En sistemas de archivos estándar de Linux como ext4, los directorios son archivos especiales destinados a indexar los nombres e inodes de su contenido. El bloque mínimo de asignación en disco suele ser de 4096 bytes (4.0K), lo que explica por qué una carpeta vacía siempre marcará al menos 4.0K.
¿Existe alguna alternativa interactiva en consola a du?
Sí. Si prefieres navegar visualmente por las carpetas y borrar archivos pesados directamente desde la terminal, la mejor alternativa es ncdu (NCurses Disk Usage). Solo debes instalarlo e invocar el comando ncdu para explorar el disco con las teclas de navegación.
Consejos prácticos al auditar espacio en disco en Linux
- Usa permisos de superusuario en rutas del sistema: Al revisar directorios como
/var/log,/tmpo/usr, anteponesudo(ejemplo:sudo du -sh /var/log/*) para evitar advertencias por falta de permisos. - Optimiza el tiempo de consulta: En unidades con millones de archivos pequeños, la lectura recursiva de
dupuede demorar. Usar--max-depth=1acelera drásticamente el proceso. - Archivos eliminados pero retenidos en memoria: Si
df -hindica que tu partición está al 100% peroduno localiza archivos grandes, es posible que existan procesos activos reteniendo descriptores de archivos que ya fueron borrados.
Conclusión
Saber cómo ver el tamaño de los directorios y archivos en Linux es una habilidad técnica clave para mantener tu sistema saludable. Aunque el comando ls -lh resulta práctico para un vistazo rápido de archivos, el análisis profundo se logra con el comando du y su integración con sort, grep y head.
Dominar estas herramientas te permitirá identificar y solucionar problemas de falta de espacio en cuestión de segundos, tanto en tu equipo local como en servidores de producción.