Centos
將 /home/etc 恢復到 /etc
我需要將備份文件從復製
/mnt/backup/etc
到/etc
我cp/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 的比較工具,它還允許您確定兩個目錄之間的差異。