Nach der Spezifizierung von gz die Dateigröße wird in den letzten 4bytes einer .gz-Datei gespeichert.erhalten Sie die Dateigröße von sehr großen .gz-Datei auf einer 64bit-Plattform
I 2 Dateien mit
dd if=/dev/urandom of=500M bs=1024 count=500000
dd if=/dev/urandom of=5G bs=1024 count=5000000
erstellt haben gziped ich sie
gzip 500M 5G
ich die letzten 4 Bytes
tail -c4 500M|od -I (returns 512000000 as expected)
tail -c4 5G|od -I (returns 825032704 as not expected)
Es scheint, dass schlagen die unsichtbare 32bit Barriere tun geprüft, macht den in die ISIZE geschriebenen Wert komplett unsinnig. Was ärgerlicher ist, als wenn sie stattdessen ein Fehlerbit verwendet hätten.
Kennt jemand eine Möglichkeit, die unkomprimierte .gz-Dateigröße aus der .gz-Datei zu erhalten, ohne sie zu extrahieren?
dank
Spezifikation: http://www.gzip.org/zlib/rfc-gzip.html
edit: wenn jemand es aus, um zu versuchen, könnten Sie mit diesem anstelle von/dev/urandom
'dd suchen = 10G if =/dev/zero of = = out.dat zu zählen 0 'ist praktisch für die meisten Dateisysteme – nodakai