У меня есть набор файлов .tar.gz , которые являются файлами резервных копий для дублирования (полными или инкрементными). Я хотел бы вычислить, какие каталоги занимают больше всего места в резервных копиях. Скорее всего, это будет другой показатель для расчета того, какие каталоги занимают больше всего места в действующей файловой системе, потому что мне нужно учитывать, как часто файлы меняются (и, следовательно, занимают место для инкрементных резервных копий) и насколько сжимаемы файлы.

Я знаю, что, хотя многие другие форматы архивов хранят сжатые файлы как разные объекты внутри файла архива, файлы .tar.gz этого не делают, и поэтому невозможно получить точный объем памяти, занятый в архиве одним файлом после сжатия. Существуют ли инструменты для расчета хотя бы некоторых оценок?

2 ответа2

1

Если вас интересует определенный размер файла после сжатия, просто сожмите файл с помощью gzip один раз. Это должен быть самый прямой метод.

0

Итак, я взломал код на C, чтобы найти приблизительные значения. Код показывает, сколько байтов zlib прочитал из архива, чтобы добраться до каждого последующего файла. Код здесь: https://github.com/liori/targz-sizes

Кажется, что я мог бы извлечь более точные данные, но эти значения не должны отличаться от реальных более, чем на несколько байтов на файл, и ошибка усредняется по всем файлам, поэтому она должна быть достаточной для целей, описанных в вопрос.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .