2013-09-26 26 views
27

我使用rsync從源文件同步到目的地:防止rsync的

rsync -av --delete source destination 

我在目的地側的單個目錄,其上沒有源端。我想阻止rsync刪除此目錄。有沒有我可以傳遞給rsync的選項來防止同步時刪除此目錄?

回答

34

您可以使用--exclude排除文件/目錄。這將阻止同步的somedir目錄/刪除:

$ rsync ... --filter 'protect /remote-directory-to-keep/' ... 

不同於目前公認的答案:

rsync -avrc --delete --exclude somedir source destination 
+5

如果您想從目錄樹中的一個特定位置中排除'somedir',您可以使用「/」來錨定排除。這將提高性能 - rsync只需要檢查一次路徑!例如。 'rsync -avrc - 刪除--exclude/path/p2/somedir源目的地' –

+0

@RandySkretka - 感謝您的提示。這就是我所錯過的。 – Corin

+1

'-r'暗示'-a',不是必需的。 –

21

如在similar question提到的,這可以通過使用--filter選項與protect規則完成例如,如果您還希望使用--exclude--delete-excluded,則使用--filter非常有用。