Вы можете использовать команду rsync с переключателем резервного копирования, -b , чтобы пропустить новые файлы на переключателе получателя, -u , как в следующей последовательности, где первый rsync перезаписывает файлы, а второй отказывается перезаписывать более новый файл на получатель, а третий rsync копирует более новый файл отправителя получателю, сохраняя файл, который был изменен на получателе как xv ~, перед тем как перезаписать его отправителем xv. Расположение файла, который перемещается в сторону, можно контролировать и помещать в другое место с помощью параметра --backup-dir = DIR.
Конечно, вы можете так же легко выполнить всю эту синхронизацию в одной и той же файловой системе.
(Привет! Вот как Carbon Copy Cloner делает большую часть своего волшебства! И они берут 40 долларов за услугу ... Увы, я отвлекся ...)
whmcclos@Williams-MacBook-Pro:~$ rsync -auvb ~/bin whmcclos@localhost:/tmp
building file list ... done
bin/
bin/days
bin/hide
bin/jedit
bin/mlf
bin/most_recent_file -> most_recent_file.pl
bin/most_recent_file.pl
bin/mplayer
bin/mvim
bin/qvim
bin/sys_config
bin/sys_config.log
bin/tree
bin/try
bin/unhide
bin/xv
bin/zed -> zed.pl
bin/zed.pl
sent 18887050 bytes received 390 bytes 37774880.00 bytes/sec
total size is 18883599 speedup is 1.00
whmcclos@Williams-MacBook-Pro:~$ touch /tmp/bin/xv
whmcclos@Williams-MacBook-Pro:~$ rsync -auvb ~/bin whmcclos@localhost:/tmp
building file list ... done
sent 422 bytes received 20 bytes 294.67 bytes/sec
total size is 18883599 speedup is 42723.07
whmcclos@Williams-MacBook-Pro:~$ touch /tmp/bin/xv
whmcclos@Williams-MacBook-Pro:~$ touch ~/bin/xv
whmcclos@Williams-MacBook-Pro:~$ rsync -auvb ~/bin whmcclos@localhost:/tmp
building file list ... done
bin/xv
sent 7392 bytes received 10434 bytes 35652.00 bytes/sec
total size is 18883599 speedup is 1059.33
whmcclos@Williams-MacBook-Pro:~$ ls /tmp/bin/xv*
/tmp/bin/xv /tmp/bin/xv~