it-swarm-es.tech

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

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

189
Juanjo Conti
du -s directory_name

O para obtener una salida legible por humanos:

du -sh directory_name

La opción -s Significa que no enumerará el tamaño de cada subdirectorio, solo el tamaño total.

245
sepp2k

GNU du toma un -b opción.

Consulte man página y info página para obtener más ayuda:

-b, --bytes es equivalente a --apparent-size --block-size=1

7
user2573436

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 ./*
7
NFlourish
du -csh

-c produce gran total

1
Kalpesh Soni

Tratar

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

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

1
rollinjack

Puede usar "file-size.sh" de awk Velour library :

ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'
1
Steven Penny

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 más espacio en disco en mis máquinas, independientemente de cuánto sume un solo directorio.

Uso: Sudo ncdu / (No necesita Sudo para carpetas en las que tiene permiso de lectura).

Tomará un tiempo escanear las estadísticas de uso del disco en todo el sistema de archivos. Tiene una representación gráfica de la línea de comandos de Nice 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
Etescartz

du -hd1

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

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

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
0
Praveen Kumar BS

La pregunta original preguntaba el tamaño, pero no especificaba si era el tamaño en el disco o el tamaño real de los datos.

He descubierto que el cálculo de 'du' puede variar entre servidores con la misma partición de tamaño que usa el mismo sistema de archivos. Si las características del sistema de archivos difieren, esto tiene sentido, pero de lo contrario no puedo entender por qué. La respuesta 'ls | awk "que Steven Penny dio produce una respuesta más consistente, pero aún así me dio resultados inconsistentes con listas de archivos muy grandes.

El uso de 'buscar' dio resultados consistentes para más de 300,000 archivos, incluso cuando se compara un servidor con XFS y otro con EXT4. Entonces, si desea conocer el total de bytes de datos en todos los archivos, le sugiero que esta sea una buena manera de obtenerlo:

find /whatever/path -type f -printf "%s\n"|awk '{q+=$1} END {print q}'
0
Angelo Babudro

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 información del directorio, no el contenido del directorio, -h es para mostrar el tamaño en formato legible por huma.

0
fromnaboo