du
no resumiría si le pasa una lista de archivos.
En su lugar, canalice la salida a cut
y deja awk
Añádelo. Entonces puedes decir:
find . -mtime +180 -exec du -ks {} \; | cut -f1 | awk '{total=total+$1}END{print total/1024}'
Tenga en cuenta que la opción -h
para mostrar el resultado en formato legible por humanos ha sido reemplazado por -k
que es equivalente al tamaño de bloque de 1K. El resultado se presenta en MB (ver total/1024
arriba).
@PeterT tiene razón. Casi todas estas respuestas invocan un comando (du) para cada archivo, que consume muchos recursos, es lento e innecesario. La forma más sencilla y rápida es esta:
find . -type f -mtime +356 -printf '%s\n' | awk '{total=total+$1}END{print total/1024}'
¿Por qué no esto?
find /path/to/search/in -type f -mtime +180 -print0 | du -hc --files0-from - | tail -n 1