Tar

相同 tar 內容的不同 md5sum

  • February 14, 2019

我執行了一個測試,從同一個目錄創建了兩個 tar(它的文件保持不變),我發現它們的 md5sum 不同。我假設 tar 的標頭中包含一些時間戳,但我還沒有找到覆蓋它的方法。我的作業系統是 Ubuntu 9.1。有任何想法嗎 ?

謝謝。

正如丹尼斯在上面指出的那樣,它是 gzip。gzip 標頭的一部分是文件中壓縮的任何內容的修改時間。如果您需要 gzip,您可以將 tar 文件壓縮為 tar 之外的額外步驟,而不是使用 tar 的內部 gzip。gzip 命令有一個標誌來禁止保存修改時間。

tar -c ./bin |gzip -n >one.tgz
tar -c ./bin |gzip -n >two.tgz
md5sum one.tgz two.tgz

這不會影響 tar 文件中的時間,只會影響 gzip 標頭中的時間。

要製作具有一致校驗和的 tar 文件,只需GZIP=-n像這樣添加:

GZIP=-n tar -zcf myOutputTarball.tar /home/luke/directoryIWantToZip

工作原理: Tar 可以使用臨時GZIP環境變數接受 gzip 選項,如上所述。就像 Valter 所說,tar 使用 gzip,預設情況下它會在存檔中放置一個時間戳。這意味著當您壓縮相同的文件時,您會得到不同的校驗和。該-n選項禁用該時間戳。

引用自:https://serverfault.com/questions/110208