Quiero mostrar el tamaño completo de los directorios de un sistema de archivos de Linux. He intentado ejecutar el comando ls -al
, pero no obtengo el tamaño completo del directorio, es decir, incluyendo todos sus contenidos.
Por otra parte, el comando df
muestra el tamaño de todos los sistemas de archivos montados en el sistema, pero eso tampoco me sirve en este caso. Y por último, con el comando du
puedo obtener el tamaño de cada directorio de todo el sistema de archivos.
Lo que yo quiero es mostrar el tamaño completo (incluyendo sus contenidos) de todos los subdirectorios que se encuentran en un determinado directorio. ¿Qué comando debo ejecutar para conseguirlo?
Estás leyendo una traducción autorizada de la pregunta How to get the summarized sizes of folders and their subfolders? planteada por 2ndkauboy en StackOverflow.
Respuestas
Ejecuta el siguiente comando:
$ du -sh /ruta/del/directorio/padre/*
El *
es importante para que se calcule el tamaño de todos los subdirectorios. La opción -s
hace que sólo se muestre el tamaño total de cada elemento y la opción -h
(del inglés human readable) hace que los tamaños no se muestren en bytes sino en unidades fácilmente entendibles por humanos (MB, GB, etc.)
Si lo que quieres es mostrar esos directorios por orden del más grande al más pequeño, ejecuta el siguiente comando combinado:
$ du -m /ruta/del/directorio/padre/* | sort -nr | head -n 20
Observa que la opción -sh
del comando du
se ha reemplazado por -m
(que muestra el tamaño de los directorios en megabytes). El motivo es que la opción -h
hace que el ordenamiento de elementos del más grande al más pequeño no funcione (porque se ordena por número sin tener en cuenta su unidad de medida: megabyte, gigabyte, etc.)
@javiereguiluz