du
by neshrnoval, pokud mu předáte seznam souborů.
Místo toho nasměrujte výstup do cut
a nechte awk
shrnout to. Takže můžete říct:
find . -mtime +180 -exec du -ks {} \; | cut -f1 | awk '{total=total+$1}END{print total/1024}'
Všimněte si, že volba -h
zobrazení výsledku ve formátu čitelném pro člověka bylo nahrazeno -k
což odpovídá velikosti bloku 1 kB. Výsledek je uveden v MB (viz total/1024
výše).
@PeterT má pravdu. Téměř všechny tyto odpovědi vyvolávají příkaz (du) pro každý soubor, což je velmi náročné na zdroje a pomalé a zbytečné. Nejjednodušší a nejrychlejší způsob je tento:
find . -type f -mtime +356 -printf '%s\n' | awk '{total=total+$1}END{print total/1024}'
Proč ne tohle?
find /path/to/search/in -type f -mtime +180 -print0 | du -hc --files0-from - | tail -n 1