Pull to refresh

Утилита подсчета размера директорий

Утилита подсчета размера директорий


Добрый день!
При разработке или администрировании на ОС Windows раз в полгода, год, пару лет возникает задача почистить диск от накопившихся логов, временных файлов, устаревших дистрибутивов и т.п. мусора.
Меня все-таки "достала" необходимость вручную ходить по папкам, подпапкам и пытаться найти кто же все-таки занимает пространство. Так появилась утилита командной строки diskusage.


Как она работает:


  1. Запускаем утилиту


    diskusage.exe -path "C:/Temp; D:/" -limit 20

    Перечисляем в path директории для сканирования через ";" и в limit (опциональный параметр) указываем количество директорий наибольшего размера, которые будут выведены в консоль.


  2. Получаем на выходе:
    Start scanning
    Checking folders: [f:/temp]
    List of 20 max size folders:
    1.| DIR: f:/temp                      | SIZE: 639.52 Gb
    2.| DIR: f:/temp/NATURAL              | SIZE: 584.60 Gb
    3.| DIR: f:/temp/NATURAL/MDM          | SIZE: 455.92 Gb
    4.| DIR: f:/temp/NATURAL/MDM/LIB_CMP  | SIZE: 226.99 Gb
    5.| DIR: f:/temp/NATURAL/MDM/LIB_GB   | SIZE: 95.61 Gb
    6.| DIR: f:/temp/NATURAL/MDM/LIB_HF   | SIZE: 65.51 Gb
    7.| DIR: f:/temp/SPLOK                | SIZE: 952.30 Mb
    ...
    20. | | |
    Finish scanning
    Total time: 31.5670085s

Некоторые особенности работы:


  • Сделано для windows, в unix наверняка достаточно написать одну строку bash, чтобы получить размеры директорий (напишите в комментариях — так ли это).
  • Выбор максимальных n-директорий осуществляется среди всех директорий и поддиректорий, входящих в -path.
  • Файлы в результаты не попадают! Только директории.
  • Размерность в результатах (Kb, Mb, Gb, ...) выбирается динамически, исходя из размера директории. Внутри есть ограничение верхней границы размерности до Gb (то есть Tb в результатах вы не увидите), но когда-нибудь сделаю это входным параметром. Это важно, например, если вы заходите получить точные размеры директорий, тогда размерность должна быть указана в байтах.
  • Для упрощения анализа результатов рекомендую сделать bat-файл с выводом результатов в txt-файлик. Подробности на странице проекта.
  • Вывод в Go выполняется в unix-кодировке, поэтому смотреть результаты удобно в Notepad++ (пожалуй тоже надо переделать, но пока меня не напрягает, а вот если вам понадобится...)

Релиз для винды здесь.


Пишите отзывы — полезная штука или нет очень полезная?

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.