Compression

未壓縮文件估計錯誤?

  • December 16, 2021

我有一個大 (~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 及更大的未壓縮大小和壓縮率列出不正確。

引用自:https://unix.stackexchange.com/questions/472013