Directory
rsync比較目錄?
是否可以用 rsync 比較兩個目錄並只列印差異?有一個空執行選項,但是當我將詳細程度增加到一定水平時,會顯示比較的每個文件。
ls -alR
並且diff
在這裡沒有選擇,因為原始碼中的硬連結使每一行都不同。(當然,我可以用 perl 刪除這一列。)
您可能必須
rsync -avun --delete
在兩個方向上執行類似的東西。但是你實際上想要完成什麼?
更新:
rsync -avun --delete $TARGET $SOURCE |grep "^deleting "
將為您提供目標目錄中不存在的文件列表。“grep delete”,因為每一行都會列印: deleting ..file ..
rsync -avun $SOURCE $TARGET
將為您提供“不同”文件(包括新文件)的列表。
要添加到 Nils 的答案(對於通過 Google 遇到此問題的任何人),預設情況下
rsync
僅比較文件大小和修改時間以判斷是否存在任何差異。(如果它們不同,它會做更多,但如果它們相同,它就會停在那裡。)如果要比較實際文件內容,即使對於具有相同大小和上次修改時間的文件,也可以添加標誌
-c
來告訴rsync
使用校驗和比較文件。rsync -avnc $SOURCE $TARGET
(該
-u
選項告訴 rsync 忽略$TARGET
比 on更新的文件,$SOURCE
如果您正在比較內容,您可能不希望這樣做。)