超過 4 GB 的 gzip 文件的便攜性如何?
為了備份我的工作快照,我執行了一個命令,例如
tar -czf work.tgz work
創建一個 gzipped tar 文件,然後我可以將其放入雲儲存中。但是,我剛剛注意到 gzip 的大小限制為 4 GB,而我的work.tgz
文件超過 4 GB。儘管如此,如果我在目前電腦上創建一個 gzip tar 文件(執行 Mac OS X 10.15.4,gzip 版本稱為 Apple gzip 287.100.2),我可以成功檢索它。所以在我的特殊情況下,gunzip 可以在 >4GB 上執行。但我希望能夠在 Mac OS X 或 Linux 以及未來可能的其他系統上創建和讀取這些大型 gzip 文件。
我的問題是:我可以在任何地方解壓/解壓大文件嗎?換句話說,大小超過 4 GB 的 gzip 文件的可移植性如何?如果我在 Mac OS、Linux 或其他東西上創建它有關係嗎?
一些線上閱讀表明 gzip 將成功地 gzip/gunzip 一個更大的文件,但不會正確記錄未壓縮的大小,因為該大小儲存為 32 位整數。這就是極限了嗎?
我剛剛注意到 gzip 的大小限制為 4 GB
更準確地說,該
gzip
格式無法正確儲存超過 4GiB的未壓縮文件*大小;*它儲存未壓縮大小的低 32 位,並gzip -l
誤導性地將其表示為原始數據的大小。結果是,gzip
包括 1.11 在內gzip -l
的任何原始大小超過 4GiB 的壓縮文件都不會顯示正確的大小。
gzip
除此之外,本身沒有限制,gzip
超過 4GiB 的 ped 文件是可移植的。該格式由RFC 1952指定,並且廣泛支持。在1.12
gzip -l
中修復gzip
了對 所提供資訊的混淆;gzip -l
現在解壓縮數據以確定原始數據的實際大小,而不是顯示儲存的大小。我可以在任何地方解壓/壓縮大文件嗎?
任何可以處理大文件的地方,以及符合規範的實現
tar
和gunzip
可用的地方。換句話說,大小超過 4 GB 的 gzip 文件的可移植性如何?
gzip
格式本身是可移植的,文件gzip
也是可移植的,無論它們包含的數據大小如何。如果我在 Mac OS、Linux 或其他東西上創建它有關係嗎?
不,
gzip
在任何平台上創建的文件都可以在具有所需功能的任何其他平台上解壓縮(特別是在此問題的上下文中儲存大文件的能力)。