tar 相當於 zip -o (--latest-time)?

tar 相當於 zip -o (--latest-time)?

Zip 實用程式使我們能夠

將 zip 檔案的「上次修改」時間設定為 zip 檔案中的條目中找到的最新(最舊)「上次修改」時間

zip -o [...]

或者

zip --latest-time [...]

對 TAR 執行相同操作的最簡單方法是什麼?

答案1

new_file="$(find dir/ -type f -exec stat --printf='%n\0%Y\n' {} + | sort -k2,2 -nt '\0' | tail -n1 | cut -d '' -f1)"; tar -zcf foo.tar.gz dir/; touch -r "$new_file" foo.tar.gz

發生情況的範例

tar -zcf foo.tar.gz dir/; touch -r fileX foo.tar.gz

你應該改變foo.tar.gz,目錄/在上面的命令中

  • 尋找所有文件目錄/(同樣是焦油)
  • 取得自紀元以來的最後一次修改時間戳記(以秒為單位)
  • 按數字排序並獲取底部的一個(最新的)
  • touch 在調整 foo.tar.gz 時間戳記時使用該文件作為參考。

答案2

可能沒有一句台詞(至少在 POSIX 中)。我使用一個腳本(觸控目錄) 設定目錄時間戳記以符合目錄中檔案的最新時間戳,然後將該時間戳記用於產生的檔案。

最後一步可以使用-r(參考)選項來完成touch。實際上我也不使用它,而是使用一個實用程式(cpd)。

相關內容