LinuxForum.Fans
Тема

Посчитать суммарный объем найденных find файлов

Автор: sibero 9 сообщений 4639 просмотров
#251169

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

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

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

#251214

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

text
find DIR <ПАРАМЕТРЫ_ПОИСКА> -ls | awk '{sum = sum+$7 }; END { print sum }'
#251234

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

#251237
sibero написал:
Спасибо большое. А как вывести в таком формате - 10 мб. ?
text
find DIR <ПАРАМЕТРЫ_ПОИСКА> -ls | awk '{sum = sum+$7 }; END { print sum/1000000 "Мб" }'
#251249

Благодарю

#251255

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

#251268

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

text

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

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

#251274

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

Войдите или зарегистрируйтесь, чтобы ответить.