Sayangnya, tidak ada metode bawaan dalam Rsync pada saat penulisan.
Solusi Mike Fitzpatrick akan berfungsi dengan baik, namun jika Anda memiliki pohon direktori yang sangat besar, Anda mungkin ingin melakukan sesuatu yang tidak membuat rsync menelusuri semua file lagi
EDIT: Ada juga bug di mana ia tidak akan menghapus file tujuan ... semakin banyak saya melihatnya, solusi ini rusak ... Saya meninggalkannya karena dapat bekerja dalam kasus Anda dan juga jika seseorang ingin untuk memperbaikinya. Juga, seseorang harus mengirimkan permintaan fitur formal ke https://bugzilla.samba.org/enter_bug.cgi?product=rsync
Saya menulis skrip ini:
#! /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
Coba tempelkan skrip ke file bernama rsync-confirm.bash
Kemudian chmod +x rsync-confirm.bash
Kemudian ./rsync-confirm.bash -rvh /etc/ /tmp/etc/
Script ini mungkin sedikit buggy, saya perhatikan bahwa itu tidak benar-benar menyukainya jika Anda tidak memiliki garis miring pada direktori sumber ...