Неправильна оцінка файлу неправильна?


9

У мене був великий (~ 60G) стислий файл ( tar.gz).

Раніше я splitрозбивав його на 4 частини, а потім catз'єднував їх.

Однак зараз, коли я намагаюся оцінити розмір нестисненого файлу, виявляється, він менший за оригінал? Як це можливо?

$ gzip -l myfile.tar.gz 
         compressed        uncompressed  ratio uncompressed_name
        60680003101          3985780736 -1422.4% myfile.tar

Чи splitдійсно це стосується цього? У вас є проблема лише після того, як розщепите їх і з'єднаєте їх разом?
Бармар

Відповіді:


20

Це викликано розміром поля, яке використовується для зберігання нестисненого розміру у gzipped файлах: це лише 32 біти, тому gzipможна зберігати розміри файлів до 4 Гб. Все, що більше, стискається та стискається правильно, але gzip -lдає неправильний розмір, що не стискається .

Отже, розбиття та реконструкція не призвело до цього і не повинно вплинути на файл - якщо ви хочете переконатися, ви можете це перевірити gzip -tv.

Див швидкого способу розробки нестислого розміру великих стислих файлів для більш докладної інформації, а також керівництво :gzip

gzipФормат є розмір вхідного по модулю 2³² , так що нестислий розмір і ступінь стиснення, перераховані неправильно для незжатих файлів 4 гинув і більше.


Отже, фактичний вміст все ще може бути неушкодженим, правда?
Руслан

@Ruslan так, розмір відображається неправильно, але вміст прекрасний.
Стівен Кітт

+1 я збирався здогадатися, що це помилка UINT32 чи щось подібне.
mathreadler
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.