У меня есть несколько очень больших каталогов, и я хочу узнать их приблизительный размер. Я использую для этой цели в основном du
, но для каждой папки это занимает около 3 минут, поэтому я спрашиваю, есть ли альтернатива du
или stat
что занимает меньше времени (может быть неточно: ~10% было бы нормально)
решение1
Этот вопрос возник довольно давнонесколько разНасколько мне известно, вот несколько возможных альтернатив:
Различные файловые системы- Если вы можете поместить каждый интересующий вас каталог в отдельную файловую систему, то вы можете просто использовать
df
вместоdu
-> instantaneous.Квоты- Если вы можете изменить владельца каталогов, то вы можете назначить каждого из них владельцем отдельного пользователя, настроить для них дисковые квоты и использовать их для отслеживания того, сколько места они используют (также мгновенно).
хрон- Запуск
du
в задании cron (скажем, каждый день или около того) и использование результата последнего задания вместоdu
прямого запуска. Если вас не волнует небольшая неточность, это может быть вариантом.JDiskReportкак сообщается, может быстро проанализировать диск или папку, которые были недавно проанализированы.
ФайллайтилиАнализатор использования дискатоже может быть вариантом. СогласноВот этот:
Если у вас есть среда рабочего стола на рассматриваемом ящике, FileLight великолепен. Он довольно быстр и позволяет вам развернуть дерево каталогов и затем только повторно сканировать это поддерево, когда вы хотите получить обновленный вид. Вы могли бы очень хорошо запускать полное сканирование один раз в день, а затем просто оставить программу открытой весь день, не выполняя никаких обновлений.