¿Cómo ver el tamaño de los directorios y archivos en Linux?

- Andrés Cruz

EN In english

¿Cómo ver el tamaño de los directorios y archivos en Linux?

Cuando trabajas en Linux y empiezas a quedarte sin espacio en disco, la pregunta no es si algo ocupa demasiado, sino qué directorio o archivo es el responsable. En mi caso, 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 yendo el espacio.

En esta guía te muestro cómo ver el tamaño de los directorios y archivos en Linux, desde lo más básico hasta combinaciones prácticas que uso a diario con du, para que puedas auditar tu sistema sin perder tiempo.

En esta entrada veremos algunos comandos que nos permitirán ver cuando ocupan (el tamaño) los directorios y archivos, cuales son los directorios más pesados, cuales son los que pesan más de un Gb, entre otros; para esto empleamos el comando du.

Por qué no basta con ls para saber cuánto ocupa una carpeta

El comando ls suele ser el primer recurso:

ls -lh

Con las opciones:

  • -l: formato largo
  • -h: tamaño legible (KB, MB, GB)

Esto funciona bien para archivos, pero con directorios es engañoso. El tamaño que muestra ls corresponde al directorio en sí, no al contenido que alberga. Por eso, aunque es útil para listar archivos, no sirve para saber cuánto ocupa realmente una carpeta.

Ahí es donde entra en juego el comando correcto.

Opciones del comando du [opciones] [archivo]: la forma correcta de ver el tamaño de directorios en Linux

Su sintaxis básica es:

du [opciones] [archivo o directorio]

Existen varias opciones para este comando las cuales puedes consultar y estudiar a través del comando man du, aunque entre las que considero más importantes tenemos las siguientes tres:

-sCon esta opción indicamos que solo tome en consideración los archivos especificados (* para todos los archivos).
-cEsta opción la podemos emplear para que nos muestre el total del espacio consumido.
-hEsta opción sirve para mejorar la legibilidad de los datos presentados al agregar el tamaño de los archivos en kb, mb, gb...

Ejemplos comunes de uso del comando du

Explicado brevemente sus opciones, veamos algunos ejemplos en donde empleamos estas opciones:

Para ver el tamaño de los archivos listados en algún directorio (carpeta) y archivos:

[andres@localhost ~]$ du -s *
49180	androidemulator
604860	backup linux
19916	bucardo
4	bucardo.restart.reason.log
4	bucardo.restart.reason.txt
649532	Descargas
8	Desktop
52240	Documentos
90020	Documents
3722728	Dropbox
4	Escritorio
135196	glassfish-4.1
3852	Imágenes
32728	jre-oraclejava.rpm
4	Música
620488	netbeans-8.0.2
40	NetBeansProjects
25188	oo.war
52	pgadmin.log
4	Plantillas
4blico
750560	sts-bundle
4	Vídeos
452280	workspace

Aunque la salida anterior la sección numérica que corresponde al tamaño es algo engorrosa de entender, para corregir esto y colocar el tamaño de los archivos y directorios en un formato más legible empleamos el siguiente comando:

[andres@localhost ~]$ du -sh *
49M	androidemulator
591M	backup linux
20M	bucardo
4,0K	bucardo.restart.reason.log
4,0K	bucardo.restart.reason.txt
635M	Descargas
8,0K	Desktop
52M	Documentos
88M	Documents
3,6G	Dropbox
4,0K	Escritorio
133M	glassfish-4.1
3,8M	Imágenes
32M	jre-oraclejava.rpm
4,0K	Música
606M	netbeans-8.0.2
40K	NetBeansProjects
25M	oo.war
52K	pgadmin.log
4,0K	Plantillas
4,0K	Público
733M	sts-bundle
4,0K	Vídeos
442M	workspace

Ahora, si queremos ver además de la información anterior el espacio total consumido u ocupado:

[andres@localhost ~]$ du -csh *
49M	androidemulator
591M	backup linux
20M	bucardo
4,0K	bucardo.restart.reason.log
4,0K	bucardo.restart.reason.txt
635M	Descargas
8,0K	Desktop
52M	Documentos
88M	Documents
3,6G	Dropbox
4,0K	Escritorio
133M	glassfish-4.1
3,8M	Imágenes
32M	jre-oraclejava.rpm
4,0K	Música
606M	netbeans-8.0.2
40K	NetBeansProjects
25M	oo.war
52K	pgadmin.log
4,0K	Plantillas
4,0K	Público
733M	sts-bundle
4,0K	Vídeos
442M	workspace
6,9G	total

Ver el tamaño total de un directorio en formato legible

Si solo quieres saber cuánto ocupa un directorio completo, este es el comando más directo:

du -sh directorio

Ejemplo real:

du -sh Dropbox

Salida:

3,6G    Dropbox

Es el comando que suelo usar como primer paso cuando algo “huele” a consumo excesivo de disco.

Mostrar el tamaño de archivos y subdirectorios

Para ver qué hay dentro de un directorio y cuánto ocupa cada cosa:

du -sh *

Esto muestra archivos y carpetas con su tamaño total, algo mucho más útil que una lista plana. En sistemas reales aparecen mezclados documentos, logs, proyectos, descargas… justo lo que necesitas analizar.

Mostrar también el total ocupado

Cuando quiero saber cuánto espacio ocupa todo en conjunto, añado -c:

du -csh *

Al final obtendrás una línea con el total general, ideal para contrastar con el espacio disponible en el sistema.

Limitar la profundidad de carpetas con du --max-depth

En estructuras grandes, mostrar todo puede ser excesivo. Para limitar niveles de profundidad:

du -h --max-depth=1

Esto muestra solo los directorios inmediatamente debajo del actual, manteniendo el total correcto. Es muy útil cuando tienes árboles grandes y solo quieres identificar qué carpeta raíz es la problemática.

Ordenar directorios y archivos por tamaño

Aquí es donde du empieza a brillar de verdad cuando lo combinas con otros comandos.

Para ordenar de menor a mayor:

du -h | sort -h

Y de mayor a menor (mi caso más habitual):

du -h | sort -h -r

Cuando estoy limpiando espacio, casi siempre empiezo así para atacar directamente lo más pesado.

Ver solo los directorios que ocupan más de 1 GB

Si solo te interesan carpetas grandes, puedes filtrar fácilmente:

du -csh * | grep G

En mi experiencia, esto es ideal para detectar directorios “olvidados” que han ido creciendo sin control.

Mostrar los archivos y carpetas más pesados (top N)

Para ver, por ejemplo, los 3 directorios o archivos que más espacio ocupan:

du -csh * | sort -nr | head -3

Este tipo de combinación es la que realmente marca la diferencia frente a los tutoriales básicos, porque responde directamente a la pregunta: ¿qué borro o muevo primero?

Empleando múltiples comandos

Cómo debes saber si usas Linux, para enviar la información de un comando a otro empleamos pipe (|) para emplear otros comandos; por ejemplo, si solo te interesan los archivos y directorios que ocupen más de 1 Gb:

[andres@localhost ~]$ du -csh * | grep G
3,6G	Dropbox
6,9G	total

Si quisiéramos ver los archivos desde el más pesado al más liviano (ordenados):

[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	Escritorio
4	bucardo.restart.reason.txt
4	bucardo.restart.reason.log

Si por ejemplo, quisiéramos ver los 3 archivos y carpetas más pesados:

[andres@localhost ~]$ du -csh * | sort -nr | head -3
733M	sts-bundle
635M	Descargas
606M	netbeans-8.0.2

Estas fueron algunas combinaciones empleando el comando du en conjunto con otros comandos y sus principales opciones, aquellos que considero los más útiles según sea la necesidad, pero existen muchísimas más combinación en donde parece que la imaginación es el limite…

Consejos prácticos al analizar uso de disco en Linux

  • Algunos detalles que he aprendido con el uso diario:
  • du puede tardar en sistemas grandes o con muchos archivos pequeños.
  • En directorios del sistema, puede ser necesario usar sudo.
  • Los tamaños de du reflejan bloques usados, no siempre el tamaño “lógico”.
  • Directorios que pesan 4.0K suelen estar vacíos o solo contienen metadatos.

Preguntas frecuentes

  • ¿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.

Conclusión

Saber cómo ver el tamaño de los directorios y archivos en Linux es clave para mantener un sistema sano. Aunque ls puede servir para una vista rápida, el verdadero trabajo se hace con du y, sobre todo, combinándolo con sort, grep y head.

En mi caso, estas combinaciones me han ahorrado horas al diagnosticar problemas de espacio tanto en escritorios como en servidores. Una vez las interiorizas, analizar el uso de disco se vuelve rápido y casi automático.

Veremos algunos comandos que nos permitirán ver cuando ocupan (cuánto pesan) los directorios y archivos, cuales son los directorios más pesados, cuales son los que pesan más de un Gb, entre otros; para esto empleamos el comando du.

Acepto recibir anuncios de interes sobre este Blog.

Andrés Cruz

EN In english