आप --delete
ध्वज का उपयोग करके एक ही कमांड में दोनों कार्यों को पूरा कर सकते हैं rsync
।
> ls -1 localdir/
a.foo
b.foo
> ssh remote-host "ls -1 remotedir/"
c.foo
> rsync -a --delete localdir/ remote-host:remotedir/
> ssh remote-host "ls -1 remotedir/"
a.foo
b.foo
--delete
विकल्प गंतव्य निर्देशिका है कि स्रोत पर मौजूद नहीं हैं से फाइल को हटा। फ़ाइलों को हटाए जाने और बहिष्कृत फ़ाइलों को कैसे संभालना है, इसके बारे में कुछ विकल्प हैं।
> man rysnc
...
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before transfer (default)
--delete-during receiver deletes during xfer, not before
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files from dest dirs
मैन पेज में यह चेतावनी शामिल है:
अगर गलत तरीके से इस्तेमाल किया जाए तो यह विकल्प खतरनाक हो सकता है! यह देखने के लिए पहले --dry-run option
( -n
) का उपयोग करके कि क्या महत्वपूर्ण फ़ाइलें सूचीबद्ध नहीं हैं, यह सुनिश्चित करने के लिए फ़ाइलों को हटा दिया जाएगा चलाने के लिए एक बहुत अच्छा विचार है ।