給定原始未壓縮文件,我可以準確地重新創建 gzip 文件嗎?

給定原始未壓縮文件,我可以準確地重新創建 gzip 文件嗎?

我有一系列gzip文件,我希望使用 更有效地存儲它們xz,而不丟失對 gzip 文件的一組校驗和的可追溯性。

我相信這相當於能夠從 xz 文件重新創建 gzip 文件,儘管我願意接受其他建議。

詳細說明...如果我有一個名為 的 gzip 文件target.txt.gz,並將其解壓縮target.txt並丟棄壓縮文件,我想完全重新創建原始壓縮文件target.txt.gz。確切地說,我的意思是文件的加密校驗和應該表明它與原始文件完全相同。

我最初認為這肯定是不可能的,因為gzip 檔案包含原始檔案名稱和時間戳等元數據,這些元資料在解壓縮時可能不會保留,而註釋、來源作業系統和壓縮標誌等元資料幾乎肯定是可以保留的。

但後來我想修改我的問題:是否有我可以從 gzip 檔案中提取的最少量的標頭信息,與未壓縮的數據相結合,可以讓我重新創建原始的 gzip 檔案。

然後我想,由於諸如此類的工具的存在,答案可能仍然是否定的。佐普夫利7-拉鍊,它可以創建與標準 gzip 程式更好(因此不同)的 gzip 相容流。據我所知,gzip 檔案格式不記錄是哪個壓縮器創建的。

所以我的問題是:還有其他我沒有想到的選擇可能意味著我可以實現第一段中列出的目標嗎?

答案1

這可能會有所幫助:https://github.com/google/grittibanzli

Grittibanzli 是一個將 deflate 流壓縮為較小檔案的工具,該檔案可以再次解碼為原始 deflate 流。也就是說,它不僅壓縮 deflate 流內的數據,還壓縮與 deflate 相關的信息,例如 LZ77 符號和霍夫曼樹,以準確地再現 gzip、png 等文件。

相關內容