Stima del file non compresso errata?


9

Ho avuto un file compresso di grandi dimensioni (~ 60G) ( tar.gz).

Lo splitdividevo in 4 parti e poi catli univo di nuovo.

Tuttavia, ora, quando sto provando a stimare la dimensione del file non compresso, si scopre che è più piccolo dell'originale? Com'è possibile?

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

È splitdavvero rilevante per questo? Hai il problema solo dopo averlo diviso e ricongiunto?
Barmar,

Risposte:


20

Ciò è causato dalla dimensione del campo utilizzato per memorizzare la dimensione non compressa nei file compressi con gzip: è solo 32 bit, quindi gzippuò contenere solo dimensioni di file fino a 4 GiB. Qualsiasi cosa più grande viene compressa e non compressa correttamente, ma gzip -lfornisce una dimensione non compressa non corretta.

Quindi dividere il tarball e ricostruirlo non ha causato questo, e non avrebbe dovuto influire sul file - se vuoi essere sicuro, puoi controllarlo con gzip -tv.

Vedi il modo più veloce per elaborare dimensioni non compresse di file GZIPPED di grandi dimensioni per maggiori dettagli e il gzipmanuale :

Il gzipformato rappresenta la dimensione di input modulo 2³² , quindi le dimensioni e il rapporto di compressione non compressi sono elencati in modo errato per i file non compressi da 4 GiB e superiori.


Quindi, il contenuto reale può essere ancora intatto, giusto?
Ruslan,

@Ruslan sì, la dimensione visualizzata è sbagliata, ma il contenuto è a posto.
Stephen Kitt,

+1 Pensavo fosse un errore UINT32 o qualcosa del genere.
matematico
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.