Почему мой .tar.gz больше, чем сумма отдельно сжатых файлов в нем?

356
der_grund

Я наблюдал следующую ситуацию, которая несколько неожиданна для меня:

У меня есть CSV-файл и соответствующий текстовый файл. Несжатые, их размеры 375 МБ и 5 КБ.

  • Когда я сжимаю CSV-файл, используя gzipстандартные настройки, его размер уменьшается до 95 МБ. Так что вместе у меня ~ 95 МБ.
  • Когда я объединяю оба файла в tarball, а затем gzipсжимаю их со стандартными настройками, у меня получается 189 МБ.

Из того, что я знаю, сжатый tarball должен быть меньше сжатого csv-файла + txt-файла, потому что тогда он gzipможет искать избыточность во всех файлах из архива. Я знаю, что это не имеет значения для моего конкретного случая, так как текстовый файл очень маленький.

Однако не должен ли файл .tar.gz иметь такой же размер, как сжатый файл csv + txt? В моем случае это более чем в два раза больше ...

Я хотел бы избежать нескольких уровней архивирования / сжатия, но все же хочу добиться хорошего сжатия. Я что-то пропустил?

2
Это почти как если бы файл размером 95 МБ был включен дважды - вы подтвердили, что этого не произошло? Andrew Morton 5 лет назад 4
Нам нужна запись вашей сессии, чтобы понять, что произошло. harrymc 5 лет назад 0
@AndrewMorton Вы были правы. Я создал архив в сценарии, чтобы связать три файла. Я на самом деле поместил три файла в архив, но вместо другого небольшого текстового файла регулярное выражение нашло уже сжатый csv, поэтому оно оказалось в архиве дважды. Я проверил только три файла, но пропустил, что там был не тот. Спасибо, что заставил меня выглядеть дважды! der_grund 5 лет назад 0

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

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