1

Здравствуйте.
Как можно в консоли посчитать суммарный объем найденных find файлов?

2

find DIR <ПАРАМЕТРЫ_ПОИСКА> -exec du -b {} + | awk '{sum = sum+$1 }; END { print sum }'

DIR — корневая директория поиска;
<ПАРАМЕТРЫ_ПОИСКА> — критерии, по которым отбираются файлы.

Был, был и весь вышел...

3

...или чуть короче

find DIR <ПАРАМЕТРЫ_ПОИСКА> -ls | awk '{sum = sum+$7 }; END { print sum }'
Был, был и весь вышел...

4

Спасибо большое.  А как вывести в таком формате - 10 мб. ?

5

sibero пишет:

Спасибо большое.  А как вывести в таком формате - 10 мб. ?

find DIR <ПАРАМЕТРЫ_ПОИСКА> -ls | awk '{sum = sum+$7 }; END { print sum/1000000 "Мб" }'
Был, был и весь вышел...

6

Благодарю

7

Извиняюсь за назойливость. Получаю такой результат 1.32214Мб. Как можно отбросить лишние цифры и оставить только 1.3 мб. ?

8

...но это уже «костыль на костыле» получился, лучше бы, конечно, скриптом оформить bx

echo $(echo "scale=1; $(find DIR <ПАРАМЕТРЫ_ПОИСКА>  -ls | awk '{sum = sum+$7 }; END { print sum }')/1000000" | bc) "Мб"

Значение scale — количество знаков после запятой.

Был, был и весь вышел...

9 (11.05.2012 21:31:10 отредактировано sibero)

Не важно, что костыль, главное, что отлично работает. Долго ломал голову, стояла задача посчитать только файлы определенного пользователя, а du считает все доступные для чтения файлы. Данная вами команда решила задачку. Не так давно начал работать с ssh, пока много не знаю. Спасибо за помощь.