Estimation incorrecte du fichier non compressé?

9

J'avais un gros fichier compressé (~ 60G) ( tar.gz).

J'avais l'habitude splitde le diviser en 4 parties, puis catde les réunir à nouveau.

Cependant, maintenant, lorsque j'essaie d'estimer la taille du fichier non compressé, il s'avère qu'il est plus petit que l'original? Comment est-ce possible?

$ gzip -l myfile.tar.gz 
         compressed        uncompressed  ratio uncompressed_name
        60680003101          3985780736 -1422.4% myfile.tar
pkaramol
la source
Est-ce splitvraiment pertinent pour cela? Avez-vous seulement le problème après les avoir séparés et réunis?
Barmar

Réponses:

20

Cela est dû à la taille du champ utilisé pour stocker la taille non compressée dans des fichiers compressés: ce n'est que 32 bits, donc gzipne peut stocker que des tailles de fichiers jusqu'à 4 Gio. Tout ce qui est plus grand est compressé et décompressé correctement, mais gzip -ldonne une taille non compressée incorrecte.

Donc, diviser l'archive tar et la reconstruire n'a pas causé cela, et n'aurait pas dû affecter le fichier - si vous voulez vous en assurer, vous pouvez le vérifier avec gzip -tv.

Voir le moyen le plus rapide de calculer la taille non compressée d'un gros fichier GZIPPED pour plus de détails et le gzipmanuel :

Le gzipformat représente la taille d'entrée modulo 2³² , de sorte que la taille et le taux de compression non compressés ne sont pas répertoriés correctement pour les fichiers non compressés de 4 Gio et plus.

Stephen Kitt
la source
Ainsi, le contenu réel peut toujours être intact, non?
Ruslan
@Ruslan oui, la taille affichée est fausse, mais le contenu est correct.
Stephen Kitt
+1 J'allais deviner que c'était une erreur UINT32 ou quelque chose comme ça.
mathreadler