如何根據目錄中的差異自動建立 tarball?

如何根據目錄中的差異自動建立 tarball?

我遇到的情況是,我有 2 個大目錄樹,一個old和一個new。大多數文件是相同的,但有些文件不同和/或在舊版本中遺失。我想找到一種方法來自動創建一個 tar 文件,其中包含: a)其中不存在的
所有文件b)所有與 之間不同的文件newold
newold

只存在於的文件old應該被忽略。需要維護符號連結。 「不同」需要透過完整的二進制比較來確定。
正如您可能猜到的那樣,我正在嘗試創建一個補丁以使一棵樹與另一棵樹相匹配。也許已經有一個工具可以做到這一點,也許我需要將一些指令串在一起。
我正在 Ubuntu Linux 工作。

答案1

我發現了一些想法這個帖子關於如何取得不同文件的清單。我採用了 rsync 方法,並附有以下--dry-run選項:

rsync -rv --dry-run --size-only --links old/ new/

獲得文件列表後,我對這些文件調用 tar。這並沒有完全解決僅在一個地方與另一個地方區分文件的問題,但透過一些手動幹預,我讓它工作了。我希望我能找到一個完全自動化的解決方案,但我能夠透過這些一般步驟解決我眼前的問題。

相關內容