अफसोस की बात है कि समय लेखन में रुपये में कोई विधि नहीं बनी है।
माइक फिट्ज़पैट्रिक का समाधान ठीक काम करेगा, हालांकि अगर आपके पास बहुत बड़ी निर्देशिका का पेड़ है, तो आप कुछ ऐसा करना चाहते हैं जो rsync को फिर से सभी फाइलों के माध्यम से न जाने दें
संपादित करें: वहाँ भी एक बग है जहाँ यह एक गंतव्य फ़ाइल को नष्ट नहीं करेगा ... अधिक से अधिक मैं इसे देखता हूं, यह समाधान टूट गया है ... मैं इसे छोड़ रहा हूं क्योंकि यह आपके मामले में काम कर सकता है और अगर कोई चाहता है ठीक करना। इसके अलावा, किसी को https://bugzilla.samba.org/enter_bug.cgi?product=oorync पर एक औपचारिक सुविधा अनुरोध प्रस्तुत करना चाहिए
मैंने यह स्क्रिप्ट लिखी है:
#! /bin/bash
# Make a temp file for storing the output of rsync
tmpfile=$( mktemp ) &&
# Do all the hard work ( get the list of files we need to update ),
# but dont actually change the filesystem
rsync --dry-run --out-format='RSYNC_CONFIRM %i %n%L' "$@" | grep RSYNC_CONFIRM | awk '{ print $3 }' > $tmpfile &&
# Output to the user what we propose to do
rsync --dry-run --itemize-changes --files-from=$tmpfile "$@" &&
# Alternatively, we could just output $tmpfile... but whatever...
read -p "Continue? (y/n)?" &&
if [[ $REPLY = [yY] ]]
then
{
rsync --files-from=$tmpfile "$@"
}
fi
rm $tmpfile
स्क्रिप्ट को फाइल में चिपकाने की कोशिश करें rsync-confirm.bash
फिर chmod +x rsync-confirm.bash
फिर ./rsync-confirm.bash -rvh /etc/ /tmp/etc/
यह लिपि थोड़ी छोटी हो सकती है, मैंने देखा कि यह वास्तव में पसंद नहीं है यदि आपके पास स्रोत निर्देशिका पर अनुगामी स्लैश नहीं है ...