Centos

將 /home/etc 恢復到 /etc

  • November 9, 2021

我需要將備份文件從復製/mnt/backup/etc/etccp/mnt/backup/etc*正在考慮的命令。

然而,經驗告訴我cp/mnt/backup/etc*可能是對文件系統的破壞性命令,因為來自 repos 的文件可能存在差異,這些文件不在這個全新安裝的 CentOS7 版本上,但在/mnt/backup/etc*我不知道的其他差異中。

我正在考慮一個命令,如果文件存在差異,它將比較兩個目錄的文件和輸出。從那裡我可以確定哪些文件/mnt/backup/etc不恢復(如果有)。

不知道如何做到這一點,已經有一段時間了。我想我使用wc命令來輸出文件之間的差異,但不確定如何比較兩個文件之間的差異。

有幾個選項可以預先進行比較:

  • rsync

rsync使用標誌執行-n將首先執行“試執行”,使您能夠查看將複製哪些文件,以便您可以在必要時進行手動調整。

rsync -nvahHSEi /mnt/backup/etc/* /etc

將是試執行,並且還將輸出有關為什麼某個文件需要複製的更多資訊(大小/修改日期的差異……)。如果差異足夠微不足道,您可以重新執行命令而無需n全自動執行實際的“恢復”操作。

  • diff

diff不僅可以使用兩個文件執行,還可以使用兩個目錄作為參數執行,它會顯示哪些文件不同,它們的內容不同(至少對於文本文件),以及哪些只存在於兩個路徑之一中. 與-r遞歸下降到子目錄的選項一起使用。正如@Olivier Dulac 所指出的,您可以首先diff -q在目錄上執行以僅顯示不同文件的列表(沒有實際差異)。

  • meld

這是一個基於 GUI 的比較工具,它還允許您確定兩個目錄之間的差異。

引用自:https://unix.stackexchange.com/questions/676333