Una volta che un file è compresso con gzip, c'è un modo per interrogarlo rapidamente per dire qual è la dimensione del file non compresso (senza decomprimerlo), specialmente nei casi in cui il file non compresso ha dimensioni> 4 GB.
Secondo la RFC https://tools.ietf.org/html/rfc1952#page-5 è possibile eseguire una query sugli ultimi 4 byte del file, ma se il file non compresso era> 4 GB, il valore rappresenta solo il valoreuncompressed value modulo 2^32
Questo valore può anche essere recuperato eseguendo gunzip -l foo.gz
, tuttavia la colonna "non compressa" contiene appena di uncompressed value modulo 2^32
nuovo, presumibilmente mentre sta leggendo il piè di pagina come descritto sopra.
Mi stavo solo chiedendo se c'è un modo per ottenere la dimensione del file non compresso senza prima decomprimerlo, questo sarebbe particolarmente utile nel caso in cui i file compressi con gzip contengano 50 GB + di dati e richiederebbe un po 'di tempo per decomprimersi usando metodi come gzcat foo.gz | wc -c
EDIT: la limitazione di 4 GB è apertamente riconosciuta nella man
pagina gzip
dell'utilità inclusa con OSX ( Apple gzip 242
)
BUGS
According to RFC 1952, the recorded file size is stored in a 32-bit
integer, therefore, it can not represent files larger than 4GB. This
limitation also applies to -l option of gzip utility.
gzip
uscì nel 1992. Sarei sorpreso se ci fossero molti 23enni in roaming qui intorno. Sono sicuro che ce ne sono alcuni, ma da quello che posso dire l'età media è di circa 30-35.
xz
quale non ha questa limitazione. GNU sta passando a xz
.
xz
che "risolverebbe" questo problema.
gzip
deve essere più vecchio di molti utenti in questa community!