我遇到的情況是,我有 2 個大目錄樹,一個old
和一個new
。大多數文件是相同的,但有些文件不同和/或在舊版本中遺失。我想找到一種方法來自動創建一個 tar 文件,其中包含: a)其中不存在的
所有文件b)所有與 之間不同的文件new
old
new
old
只存在於的文件old
應該被忽略。需要維護符號連結。 「不同」需要透過完整的二進制比較來確定。
正如您可能猜到的那樣,我正在嘗試創建一個補丁以使一棵樹與另一棵樹相匹配。也許已經有一個工具可以做到這一點,也許我需要將一些指令串在一起。
我正在 Ubuntu Linux 工作。
答案1
我發現了一些想法這個帖子關於如何取得不同文件的清單。我採用了 rsync 方法,並附有以下--dry-run
選項:
rsync -rv --dry-run --size-only --links old/ new/
獲得文件列表後,我對這些文件調用 tar。這並沒有完全解決僅在一個地方與另一個地方區分文件的問題,但透過一些手動幹預,我讓它工作了。我希望我能找到一個完全自動化的解決方案,但我能夠透過這些一般步驟解決我眼前的問題。