Задача: просуммировать размер всех файлов в директории. Первое, что приходит на ум - использовать команду du
.
du -hs
Но она показывает размер, занимаемый файлами (и под-директориями!) на диске. А часто нужно посчитать именно кол-во байтов во всех файлах. Тогда можно сделать так:
find . -type f -exec ls -l \{\} \; | awk '{s+=$5} END {print s}'
Так как
find
весьма мощная утилита, то изменяя ее параметры можно подсчитать суммарный объем данных в файлах, удовлетворяющих заданным условиям.Как правильно подсказали в комментариях, есть еще более короткое и правильное решение:
find . -type f -printf '%s\n' | awk '{SUM+=$1} END {print SUM}'