Командная строка Unix: как получить общий размер измененных файлов за последние 30 дней - PullRequest
4 голосов
/ 02 апреля 2012

Я хочу знать, как получить общий размер измененных файлов за последние 30 дней.

Я нашел эту команду, которая только дает мне список измененных файлов за последние 30 дней.

find . -name '*' -mtime -30

Это полезно, но я хочу знать ОБЩИЙ размер этого списка.

Может кто-нибудь помочь пройти через это, пожалуйста?

Ответы [ 3 ]

7 голосов
/ 02 апреля 2012

Возможно, это подойдет:

find . -mtime -30 -exec ls -l {} \;| awk '{s+=$5} END {print "Total SIZE: " s}'
0 голосов
/ 02 апреля 2012

Попробуйте передать выходные данные вашей рабочей команды поиска на du, чтобы проверить, удовлетворительны ли выходные данные.Вы можете использовать du переключатели -c для получения итогового значения и, необязательно, -h, чтобы сделать его читаемым человеком.

например:

<your command> | du -c

становится:

find . -name '*' -mtime -30 | du -c 

Если вам нужна только общая строка:

find . -name '*' -mtime -30 | du -c | grep "total"

Производит вывод:

360     total

, а использование du -ch дает:

360K    total
0 голосов
/ 02 апреля 2012

Вы можете сделать это, найдя выходной размер каждого файла, а затем суммируйте их с помощью awk

find . -name '*' -mtime -30 -printf '%s\n' | awk '{s+=$1} END {print s}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...