Selon la spécification de gz la taille de fichier est enregistrée dans les 4 derniers octets d'un fichier .gz.obtenir la taille de fichier de très grand fichier .gz sur une plate-forme 64 bits
J'ai créé 2 fichiers avec
dd if=/dev/urandom of=500M bs=1024 count=500000
dd if=/dev/urandom of=5G bs=1024 count=5000000
Je les gziped
gzip 500M 5G
J'ai vérifié les 4 derniers octets faisant
tail -c4 500M|od -I (returns 512000000 as expected)
tail -c4 5G|od -I (returns 825032704 as not expected)
Il semble que frapper la barrière 32bit invisible, rend la valeur écrite dans le ISIZE complètement absurde. Ce qui est plus ennuyeux que s'ils avaient utilisé un bit d'erreur à la place.
Est-ce que quelqu'un connaît un moyen d'obtenir la taille de fichier .gz non compressé à partir du fichier .gz sans l'extraire?
grâce
spécification: http://www.gzip.org/zlib/rfc-gzip.html
modifier: si quelqu'un pour l'essayer, vous pouvez utiliser/dev/zero au lieu de/dev/urandom
'dd seek = 10G if =/dev/zero of = out.dat count = 0' est plus pratique pour le plus – nodakai