Estimación de archivo sin comprimir mal?


9

Tenía un archivo comprimido grande (~ 60G) ( tar.gz).

Solía splitdividirlo en 4 partes y luego catunirlas nuevamente.

Sin embargo, ahora, cuando estoy tratando de estimar el tamaño del archivo sin comprimir, ¿resulta que es más pequeño que el original? ¿Cómo es esto posible?

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

¿Es splitrealmente relevante para esto? ¿Solo tienes el problema después de dividir y unirlos?
Barmar

Respuestas:


20

Esto se debe al tamaño del campo utilizado para almacenar el tamaño sin comprimir en archivos comprimidos: solo tiene 32 bits, por gziplo que solo puede almacenar tamaños de archivos de hasta 4 GiB. Cualquier cosa más grande se comprime y descomprime correctamente, pero gzip -lda un tamaño incorrecto sin comprimir

Por lo tanto, dividir el tarball y reconstruirlo no ha causado esto, y no debería haber afectado el archivo; si desea asegurarse, puede verificarlo gzip -tv.

Consulte la forma más rápida de calcular el tamaño sin comprimir de un archivo GZIPPED grande para obtener más detalles, y el gzipmanual :

El gzipformato representa el tamaño de entrada módulo 2³² , por lo que el tamaño sin comprimir y la relación de compresión se enumeran incorrectamente para archivos sin comprimir de 4 GiB y mayores.


Entonces, el contenido real todavía puede estar intacto, ¿verdad?
Ruslan

@Ruslan sí, el tamaño que se muestra es incorrecto, pero el contenido está bien.
Stephen Kitt

+1 Iba a adivinar que era un error UINT32 o algo así.
mathreadler
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.