Compression
zip 3.0 不向後兼容 zip 2.3.1?
我有兩個文件,一個是用 zip 2.3.1 製作的,另一個是用 zip 3.0 製作的。兩者都是同一目錄的 zip。這是兩個文件及其大小:
1.7G from-2.3.1.zip 1.7G from-3.0.zip
我的計劃是將我的系統轉換為新的 zip,這樣我就可以創建更大的 zip 文件,比如高達 3 GB 左右。
但是,我擔心的是,當我使用稍舊版本的 unzip 解壓縮這些文件時,嘗試解壓縮使用 zip 3.0 創建的 zip 時會出錯。
$ unzip -t from-2.3.1.zip > /dev/null # NO Errors $ unzip -t from-3.0.zip > /dev/null warning [from-3.0.zip]: 76 extra bytes at beginning or within zipfile (attempting to process anyway) error [from-3.0.zip]: reported length of central directory is -76 bytes too long (Atari STZip zipfile? J.H.Holm ZIPSPLIT 1.1 zipfile?). Compensating... error: expected central file header signature not found (file #67358). (please check that you have transferred or created the zipfile in the appropriate BINARY mode and that you have compiled UnZip properly) $
我擔心的原因是,如果我遷移到 zip 3.0,我將強制我的下游使用者全部升級到更新版本的 unzip,因為例如 unzip 6.0 解壓縮這兩個文件時不會出錯。
這種異常並非在所有情況下都會發生,所以我不確定它的全部程度。
有什麼建議麼?我是否以某種方式錯誤地建構了 zip 3.0?
謝謝。
不同之處在於Zip64文件格式,它是為了能夠壓縮更大的文件而引入的。較舊的實用程序(例如 Windows XP 的文件資源管理器)不理解它。
就 Linux 而言,至少
unzip 6.0
自 2011 年發布以來,Debian Stable 就已包含在內(變更日誌稱於 2004年發布並於 2009 年發布),所以我個人的看法是,如果您“強迫”您的使用者升級,那麼您就是幫他們一個忙。zip 3.0a``unzip 6.00