根據gz的具體情況,文件大小保存在.gz文件的最後4個字節中。在64位平臺上獲取非常大的.gz文件的文件大小
我已創建了
dd if=/dev/urandom of=500M bs=1024 count=500000
dd if=/dev/urandom of=5G bs=1024 count=5000000
2個文件我gziped他們
gzip 500M 5G
我檢查了最後4個字節做
tail -c4 500M|od -I (returns 512000000 as expected)
tail -c4 5G|od -I (returns 825032704 as not expected)
似乎擊中無形的32位屏障,使得寫入ISIZE的值完全是無稽之談。比起使用一些錯誤位代替它更煩人。
有沒有人知道如何從.gz獲取未壓縮的.gz文件大小而不提取它?
感謝
規格:http://www.gzip.org/zlib/rfc-gzip.html
編輯: 如果有人嘗試一下,你可以使用/ dev的/零而不是/ dev/urandom的
'的dd尋求= 10G,如果=的/ dev/=零out.dat數= 0'對於大多數文件系統更得心應手 – nodakai 2015-08-11 08:00:08