¿Cómo puedo calcular el tamaño de un directorio?


181

¿Cómo saber el tamaño de un directorio? Incluyendo subdirectorios y archivos.

Respuestas:


230
du -s directory_name

O para obtener una salida legible por humanos:

du -sh directory_name

La -sopción significa que no enumerará el tamaño de cada subdirectorio, solo el tamaño total.


77
En realidad du, la unidad predeterminada es bloques de 512 bytes según POSIX, y kilobytes en Linux (a menos que se establezca la variable de entorno POSIXLY_CORRECT) o con du -k.
Gilles

3
@Gilles: Buena captura. He eliminado el bit "número de bytes" de mi respuesta.
sepp2k

1
funcionó según lo prescrito
skidadon

1
si el directorio es muy grande y tiene muchos subdirectorios, lleva mucho tiempo ... casi 1 minuto ... ¿es eso normal? ¿Hay alguna manera de obtener el tamaño más rápidamente?
Sí, el

2
Necesitaba calcular el tamaño de mi carpeta "bolsa", ¡ du -sh bagfuncionó perfectamente!
António Almeida

7

Si bien el uso de un paquete separado como ncdu puede funcionar bien, la misma comparación de muchas carpetas se puede hacer, hasta cierto punto, simplemente dando una lista de carpetas para dimensionar. Por ejemplo, para comparar directorios de nivel superior en su sistema ...

cd /    
sudo du -sh ./*

2
Más simplemente,du -sh /*
roaima


1
du -csh

-c produce gran total


1
El -cno tiene sentido utilizar junto con -s, ¿verdad? -ssolo muestra el tamaño del directorio especificado, es decir, el tamaño total del directorio.
Andreas Storvik Strauman

1

Tratar

du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr

Esto ayuda a encontrar directorios grandes para luego filtrarlos usando du -sh ./*


0

también puedes usar ls -ldh:

ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc

-l es para una lista larga; -d es para mostrar la información del directorio, no el contenido del directorio, -h es para mostrar el tamaño en formato legible por huma.


44
Esto no es correcto, la persona que pregunta claramente está buscando la huella de un directorio y su contenido en el disco. La respuesta de @ sepp2k es correcta.
blong

1
El comando ls -ldh solo muestra el tamaño de la estructura de inodo de un directorio. La métrica es un reflejo del tamaño de la tabla de índice de los nombres de archivo, pero no del tamaño real del contenido del archivo dentro del directorio.
linbianxiaocao

0

Siempre instalo el paquete "ncdu" y veo toda la salida de todos los directorios con representación gráfica. Esto se debe a que generalmente necesito saber qué ocupa la mayor cantidad de espacio en disco en mis máquinas, independientemente de cuánto sume un solo directorio.

Uso: sudo ncdu /(No necesita sudocarpetas en las que tenga permiso de lectura).

Tomará un tiempo escanear las estadísticas de uso del disco en todo el sistema de archivos. Tiene una bonita representación gráfica de línea de comandos e incluye navegación con el teclado usando las teclas de flecha, como ir más profundo o más alto en la ruta escaneada. También puede eliminar elementos presionando D.



0

du -hd1

enumerará en formato legible por humanos los tamaños de todos los directorios, p. ej.

656K    ./rubberband
2.2M    ./lame
652K    ./pkg-config

0

Intenté con el siguiente comando, ya que se ha proporcionado la mejor respuesta

sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

salida

 sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

679445
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.