Compression
未壓縮文件估計錯誤?
我有一個大 (~60G) 壓縮文件 (
tar.gz
)。我曾經
split
把它分成 4 個部分,然後cat
將它們重新組合在一起。但是,現在,當我試圖估計未壓縮文件的大小時,結果發現它比原始文件小?這怎麼可能?
$ gzip -l myfile.tar.gz compressed uncompressed ratio uncompressed_name 60680003101 3985780736 -1422.4% myfile.tar
這是由用於儲存 gzip 文件中未壓縮大小的欄位大小引起的:它只有 32 位,因此
gzip
只能儲存最大 4 GiB 的文件大小。任何更大的東西都會被正確壓縮和解壓縮,但gzip -l
在 1.11 和更早的版本中會給出不正確的未壓縮大小。因此,拆分 tarball 並重新建構它並沒有導致這種情況,也不應該影響文件——如果你想確定,你可以用
gzip -tv
.有關詳細資訊,請參閱計算大型 GZIPPED 文件的未壓縮大小的最快方法,以及
gzip
手冊:該
gzip
格式表示輸入大小模2³²,因此未壓縮文件 4 GiB 及更大的未壓縮大小和壓縮率列出不正確。