Comprobación del tamaño del directorio con el comando du en Linux

Conocer el tamaño de un archivo es fácil en Linux. Todo lo que tienes que hacer es utilizar la opción -l y -h con el comando ls y te mostrará el tamaño del archivo junto con los permisos del mismo y las marcas de tiempo. Aquí te muestro un ejemplo de ello:

ls -lh Tutoriales/
total 0
-rw-rw-r-- 1 marcocarmonaga marcocarmonaga 0 jun  4 20:17 agatha.txt
-rw-rw-r-- 1 marcocarmonaga marcocarmonaga 0 jun  4 20:17 a.t
-rw-rw-r-- 1 marcocarmonaga marcocarmonaga 0 jun  4 20:17 bash_script.sh
-rw-rw-r-- 1 marcocarmonaga marcocarmonaga 0 jun  4 20:17 cpluplus.cpp
-rw-rw-r-- 1 marcocarmonaga marcocarmonaga 0 jun  4 20:17 prog.py
-rw-rw-r-- 1 marcocarmonaga marcocarmonaga 0 jun  4 20:17 services
-rw-rw-r-- 1 marcocarmonaga marcocarmonaga 0 jun  4 20:17 sherlock.txt
-rw-rw-r-- 1 marcocarmonaga marcocarmonaga 0 jun  4 20:17 sleep.sh
-rw-rw-r-- 1 marcocarmonaga marcocarmonaga 0 jun  4 20:17 target
-rw-rw-r-- 1 marcocarmonaga marcocarmonaga 0 jun  4 20:17 test_dir
-rw-rw-r-- 1 marcocarmonaga marcocarmonaga 0 jun  4 20:17 text-file.txt

Notaras que el tamaño de todos los archivos es 0, no te preocupes, eso es debido a que son de ejemplo, sin embargo, en tu caso debería tener valores distintos.

El tamaño de una carpeta o directorio en Linux puede ser encontrado usando el comando du, el cual significa «uso del disco». Ya te explicaré la lógica detrás del tamaño de 4.0K para los directorios más adelante en este tutorial. Por el momento, vamos a centrarnos en obtener el tamaño del directorio.

Si quieres comprobar el tamaño del directorio en Linux, puedes usar el siguiente comando:

du -sh path_del_directorio

Esto te dará el tamaño total del directorio en cuestión en formato legible para el ser humano, es decir, KB, MB o GB.

Uso del comando du para obtener el tamaño del directorio en Linux

Voy a mostrarte algunos ejemplos del comando du que puedes utilizar para comprobar el tamaño del directorio y la utilización del disco.

La sintaxis del comando du es bastante fácil.

du [opciones] path_del_directorio

Vamos a ver cómo utilizar el comando du para obtener la información del tamaño de los archivos y directorios en Linux.

Esta es la estructura del directorio «Tutoriales» que voy a estar utilizar en este tutorial, además de otro más que tenemos en común, el directorio «Pictures»:

tree Tutoriales/
Tutoriales/
├── agatha.txt
├── a.t
├── bash_script.sh
├── cpluplus.cpp
├── prog.py
├── services
├── sherlock.txt
├── sleep.sh
├── target
├── test_dir
└── text-file.txt

0 directories, 11 files

Ahora, si ejecuto el comando du en el directorio «Tutoriales», mostrará los tamaños de todos los subdirectorios y luego sumará los tamaños de todos los subdirectorios y los archivos en la parte inferior.

du Tutoriales/

Este es el resultado del directorio de Tutoriales.

4	Tutoriales/

Mostrar el tamaño del disco en formato legible para el ser humano

Ahora el problema con la salida anterior del comando du es que no sabes si el 4 es 4.0KB o 4.0MB o 4.0GB. No te preocupes, puedes cambiar este comportamiento y mostrar el tamaño del directorio en un formato legible para los humanos con la opción -h.

du -h Tutoriales/

Aquí está la salida, la cual es mucho más fácil de leer ahora:

4.0K	Tutoriales/

Puedes utilizar la opción -m para MB y la opción -k para KB en lugar de -h. Pero incluso si el tamaño es inferior a 1 MB, siempre mostrará el tamaño como 1MB. Por eso, usar la opción -h es siempre una mejor opción.

Mostrar también el tamaño de los archivos

¿Te has dado cuenta de que el directorio de tutoriales tiene varios archivos, pero no aparecen en la salida del comando du? Es porque, aunque el tamaño de los archivos se cuenta en la suma total del tamaño del directorio, los archivos no se muestran por defecto.

Para mostrar el tamaño de los archivos junto con el de los directorios, puedes utilizar la opción -a. Sería mejor si la combinara con la opción -h para obtener los tamaños en un formato legible.

du -ah Tutoriales/

Ahora la salida mostrará los archivos junto con los directorios:

0	Tutoriales/test_dir
0	Tutoriales/agatha.txt
0	Tutoriales/services
0	Tutoriales/sleep.sh
0	Tutoriales/a.t
0	Tutoriales/text-file.txt
0	Tutoriales/target
0	Tutoriales/prog.py
0	Tutoriales/cpluplus.cpp
0	Tutoriales/bash_script.sh
0	Tutoriales/sherlock.txt
4.0K	Tutoriales/

Consejo adicional: Resolver el misterio de 4 KB

Ten en cuenta que los tamaños pueden parecer que han sido redondeados. Me refiero a que todos los tamaños están en el múltiplo de 4K. De hecho, aparte de los archivos vacíos, todos los archivos tienen un tamaño mínimo de 4 KB. ¿Es una coincidencia? La verdad es que no.

Aunque el texto del archivo esté en bytes, el tamaño mínimo del archivo es 4K porque ese es el tamaño mínimo de bloque del sistema de archivos. Independientemente del tamaño del texto del archivo, se le asignará al menos un bloque de memoria de 4KB en el disco.

Y como los bloques de memoria tienen un tamaño de 4KB, los tamaños que verás siempre serán múltiplos de 4KB.

Ahora, probablemente ya sabes que todo es un archivo en UNIX/Linux. Un directorio es esencialmente un archivo que tiene la información sobre la ubicación de todos los archivos que «contiene».

Por lo tanto, cuando usas el comando ls, trata el directorio como un archivo y muestra su tamaño que es un bloque de memoria y por lo tanto el tamaño mostrado es de 4KB.

Mostrar sólo el tamaño total del directorio en Linux

Si encuentra la salida del comando du demasiado verbosa y desea ver sólo el tamaño total del directorio en un formato legible, puedes utilizar la opción sum -s.

du -sh Tutoriales/

Ahora la salida será sólo una línea que muestra el tamaño total del directorio:

4.0K	Tutoriales/

Mostrar el uso del disco por múltiples directorios

No es que esté restringido a comprobar el tamaño de un solo directorio a la vez. Puedes especificar múltiples directorios en el comando du.

Por ejemplo, voy a utilizar las opciones -sh para mostrar el tamaño total de dos directorios aquí.

du -sh Tutoriales/ snap/

La salida mostrará el tamaño de ambos directorios individualmente:

4.0K	Tutoriales/
2.8G	snap/

Mostrar el total de todos los tamaños de los directorios

En el ejemplo anterior, viste los tamaños totales de ambos directorios individualmente. Puedes utilizar la opción -c para mostrar un total general de la suma de todos los directorios en la salida.

du -csh Tutoriales/ snap/

Como puedes ver en la salida, suma los tamaños y te da el total general:

4.0K	Tutoriales/
2.8G	snap/
2.8G	total

No mostrar los tamaños de los subdirectorios

¿Qué pasa si quieres comprobar el tamaño de todos los directorios de la carpeta actual? Por defecto, el comando du irá a los subdirectorios de todos los directorios y la salida se vuelve difícil de entender especialmente si tienes demasiados directorios anidados.

Lo que puedes hacer es definir el nivel de profundidad a comprobar mientras se muestran los tamaños de los subdirectorios.

Así, si quiere ver los tamaños de los directorios en la carpeta actual, puedes establecer la profundidad en 1 de la siguiente manera:

du -h --max-depth=1 Pictures/

Ahora la salida mostrará los subdirectorios sólo en el directorio actual. No irá más allá de esto.

1.5M	Pictures/Wallpapers
268K	Pictures/Screenshots
1.8M	Pictures/

Si no puedes recordar la profundidad máxima, puedes utilizar su forma abreviada -d:

du -h -d1 Pictures/

Excluir cierto tipo de archivos al calcular el tamaño del disco

El comando du le da la opción de excluir cierto tipo de archivos. Puedes utilizar regex junto con la opción -exclude.

Por ejemplo, para calcular la suma de todos los archivos excluyendo los archivos con extensión txt, se puedes utilizar este comando:

du -h --exclude="*.png" Pictures/

Y ahora si ves la salida, el tamaño total del directorio se habría reducido:

1.5M	Pictures/Wallpapers
4.0K	Pictures/Screenshots
1.5M	Pictures/

Consejo adicional: Encontrar el mayor subdirectorio

Puedes combinar la salida del comando du con el comando sort para ordenar los directorios por el orden de su tamaño.

du -h --max-depth=1 Pictures/ | sort -rh

Esto mostrará los directorios en el orden inverso a su tamaño, es decir, el directorio más grande en la parte superior.

1.8M	Pictures/
1.5M	Pictures/Wallpapers
268K	Pictures/Screenshots

Por supuesto, el primero es el directorio en sí, pero el segundo le da el subdirectorio más grande.

Además, puedes combinarlo con el comando head o el comando tail para obtener el archivo x más grande o los archivos/directorios más pequeños.

¿Te ha resultado útil?

He intentado explicar todos los usos esenciales del comando du en Linux. Pero como siempre, hay muchas más opciones disponibles para el comando que puedes encontrar en su página man. Si sólo quieres averiguar el tamaño de un directorio en Linux, este tutorial debería darte suficiente información. Si quieres comprobar el espacio en disco en Linux, utiliza el comando df.

¿Te ha gustado el tutorial? ¿Te ha servido de ayuda? Házmelo saber en los comentarios. Si tienes algún otro consejo interesante sobre el comando du, ¿por qué no lo compartes con nosotros?

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *