問題說明了一切:我有一個想要「zip -rv」的目錄,但檔案一直在變化(postgres 資料庫基礎備份)。這會破壞 zip 嗎,還是會像 rsync 一樣繼續發出警告?
當 Tar 發現壓縮過程中發生更改的檔案時,它會失敗。我在生成文件更改時在目錄上運行了一些測試 zip,並且沒有看到任何錯誤,但這可能只是因為我很幸運並且 zip 已經壓縮/尚未到達更改的文件。此時我的 B 計劃是將更改的目錄 rsync 到另一個資料夾,然後將靜態位置壓縮,但這會佔用兩倍的空間,如果可能的話,我想避免這種情況。如果 zip 無法在壓縮過程中處理檔案更改,是否有實用程式可以做到這一點?
作業系統是centos 6,fwiw。
答案1
它根本不處理它們。 zip 開始建立檔案時會讀取整個目錄樹。
- 如果在 zip 操作期間刪除文件,您將收到一條警告訊息。
- 如果在 zip 作業期間建立文件,則該文件不會出現在存檔中如果它是在已讀取的目錄中建立的。如果檔案是在 zip 讀取該目錄內容之前建立的,則它將位於存檔中。
- 如果檔案在 zip 操作期間發生更改,則其內容將與新增至存檔時的內容相同。文件在新增到存檔時會被讀取。