मैं एक निर्देशिका को दर्पण करने की कोशिश कर रहा हूं जो समय के साथ दूसरी निर्देशिका में बदलती है। मेरी समस्या यह है कि अगर वे स्रोत निर्देशिका में अब भी मौजूद नहीं हैं, तो rsync गंतव्य पर फ़ाइलों को हटा नहीं रहा है। यहाँ एक डेमो स्क्रिप्ट है:
#!/bin/sh
set -x
DIR1=/tmp/1
DIR2=/tmp/2
rm -rf $DIR1
rm -rf $DIR2
mkdir $DIR1
mkdir $DIR2
echo "foo" > $DIR1/a
echo "bar" > $DIR1/b
rsync -a $DIR1/* $DIR2
rm -f $DIR1/a
rsync -a --delete $DIR1/* $DIR2
ls -1 $DIR2
यहाँ उत्पादन है:
+ DIR1=/tmp/1
+ DIR2=/tmp/2
+ rm -rf /tmp/1
+ rm -rf /tmp/2
+ mkdir /tmp/1
+ mkdir /tmp/2
+ echo foo
+ echo bar
+ rsync -a /tmp/1/a /tmp/1/b /tmp/2
+ rm -f /tmp/1/a
+ rsync -a --delete /tmp/1/b /tmp/2
+ ls -1 /tmp/2
a
b
जैसा कि आप देख सकते हैं, फ़ाइल "ए" गंतव्य निर्देशिका में rsync के दूसरी बार चलने के बाद भी मौजूद है, जो कि मेरी ज़रूरत नहीं है। क्या मैं '--delete' विकल्प का दुरुपयोग कर रहा हूं?