Earlier quoted context omitted.
That whole "find -ls | awk" is wicked slow anyway; try wc and xargs... $ time find -ls | awk '{s += $7} END {print s}' 15970582120 real 0m27.721s user 0m1.256s sys 0m1.780s $ time find | xargs wc -c 2> /dev/null | tail -1 604260969 total real 0m0.332s user 0m0.068s sys 0m0.204s
You sure that's not because of memory swapping? Once warmed up the awk command is much faster for me. Also, the results are different - though I'm too lazy to figure out why right now :)
find -type f -ls|awk '{s += $7} END {print s}'
find -type f -print0 | xargs -0 wc -c | tail -1
find -type f -exec wc -c {} + | tail -1