Encuentre el tamaño de los directorios de forma recursiva y obtenga un total

Encuentre el tamaño de los directorios de forma recursiva y obtenga un total

Estoy usando este comando para encontrar las carpetas que quiero y contar el tamaño.

find . -type d -name 'tmp_c*' | xargs du -hcs {} \; + 

Mi versión de find no es compatible con -exec. Pero esto funciona. Sin embargo, no estoy seguro de si me proporciona los totales correctos en los directorios que contienen mi cadena de búsqueda. Cuando ejecuto el comando y canalizo a menos, veo que cuenta el tamaño de cada carpeta y luego genera un total de vez en cuando. Como esto:

140K    ./r/g/userid/attach/tmp_c_241091464_2
68K     ./r/g/userid/attach/tmp_c_58367014_undefined
2.3G    total

Si redirijo la salida a un archivo y luego grep en total, obtengo esto:

2.3G    total
978M    total
1.1G    total
2.0G    total
1.1G    total

Ipensaresto me está dando los números correctos. Pero, ¿cómo puedo llevar este comando un paso más allá y hacer que sume los totales de un total general en una línea?

Respuesta1

find . -type d -name 'tmp_c*' -print0 | du -hcs --files0-from -

Esto supone versiones (¿bastante recientes?) GNU de findy du.

Respuesta2

Esto debería funcionar, probado en mi caja EL4... es la más antigua que tengo y me da vergüenza, no sé cómo se usa EL3.

find . -type d -name 'tmp_c*' -print0|xargs -0 du -c|tail -1

Hecho concoreutils-4.5.3-26

Respuesta3

https://stackoverflow.com/a/1323769/799204

Una solución alternativa es utilizar awk:

pero el guión debe adaptarse para este caso, intente

find . -type d -name 'tmp_c*' -print0 | xargs -0 du -s | awk 'BEGIN { sum=0 } { sum+=$1 } END { print sum }'

la salida estará en decimal

Respuesta4

Verifiqué que epel comienza en 5, no en 3, por lo que la única opción es un script personalizado.

También puede instalar ncdu;

https://dev.yorhel.nl/ncduit

Lo uso todo el tiempo, mucho más fácil y rápido que cualquier bash personalizado. (Puede navegar a través de los directorios, ahorra mucho tiempo).

información relacionada