Получить размер всех файлов в каталоге, измененном за последний год

323
Damon

Я пытаюсь оценить использование хранилища на сервере Linux.

Большая часть хранилища исходит от изображений. Я хотел бы посмотреть, смогу ли я получить представление о размере файлов, измененных за последний год. и, возможно, также последние 5 лет, чтобы увидеть, как это соотносится с общим размером каталога изображений (который составляет 40 ГБ)

Я пытался, du -hи это удобно, но я не вижу, как отфильтровать эти результаты по дате изменения.

3

2 ответа на вопрос

3
agc

Если пакет num-utils установлен, numsumпредоставляет простой способ добавить много чисел; пока numfmtупрощает вывод:

find . -type f -mtime -365 -printf '%s\n' | numsum | numfmt --to=iec 

( findКод заимствован у Зигги Жестокий Зейтгейстер .)

За последние 5 лет:

find . -type f -mtime -$((365 * 5)) -printf '%s\n' | numsum | numfmt --to=iec 

Если требуется точное количество дней, dateпредоставим это. Вот функция оболочки, которая возвращает точное количество дней за последние n лет:

# covert Last _n_ Years to Days # usage: ly2d n ly2d() \ { echo $(( \ $(( `date -d today +%s` - \ `date -d $1" years ago" +%s` )) \ / 60 / 60 / 24 )) ; \ } 

Использование ly2dза последние 5 лет:

find . -type f -mtime -$(ly2d 5) -printf '%s\n' | numsum | numfmt --to=iec 
у меня вроде нет numfmt. это требует другой библиотеки? Damon 7 лет назад 0
В пакете _coreutils_ Debian есть _numfmt_ или проверьте [исходный код] (http://gnu.org/software/coreutils). Если это не удастся, удалите `numfmt`, тогда сумма будет в байтах. agc 7 лет назад 0
2
Ziggy Crueltyfree Zeitgeister

Вы можете использовать perl для суммирования результатов поиска:

find . -type f -mtime -365 -printf '%s\n' |\ perl -e 'my $s=0; while(<>) { $s += $_; } print "$s\n"' 
Если пакет _num-utils_ установлен, _numsum_ проще, чем все, что _perl_: `находит. -type f -mtime -365 -printf "% s \ n '| numsum` agc 7 лет назад 3
Добавление `| Также помогает numfmt --to = iec`. agc 7 лет назад 0
@agc Вы должны опубликовать это как ответ, без причины не. Я бы с радостью одобрил это. MariusMatutiae 7 лет назад 0

Похожие вопросы