synctree - synchronize directory trees.

     synctree [-iuf] [[user1@]machine1:]dir1 [[user2@]machine2:]dir2

     Synctree synchronizes the directory tree rooted at  dir2  with  dir1.  It
     walks  recursively through both trees, and deletes and adds files in dir2
     to make it equal to dir1. Mode, owner and group are  set  for  each  file
     unless  the  -u  flag is given. In its normal mode of operation, synctree
     will ask if it may delete or add directories assuming that you don't want
     to. Non-directories are simply deleted or added, but synctree will ask if
     it needs to update a normal file with a default  answer  of  'y'.  Simply
     typing  return will choose the default answer, typing end-of-file is like
     typing return to this question and all other questions.

     You can specify a hostname and user-id to be used to access dir1 or dir2.
     Synctree  will  use rsh(1) to run a copy of itself on the remote machine.
     The call interface mimics that of rcp(1), but you can use more  than  one
     user@machine prefix if you want to make things really interesting.

     Hard links are enforced, an update is done by first deleting the old file
     so  that  links  to unknown files are broken.  Links to files within dir2
     will be restored.

     If either directory contains the file .backup, then  this  file  will  be
     used  as an alternate inode table.  This allows one to make a backup copy
     of a file tree full of special files and differing user-ids on  a  remote
     machine under an unpriviledged user-id.


     -i   Ask for permission (with default answer 'n') to delete  or  add  any
          file or directory.

     -u   Only install newer files, i.e. merge the directory trees.

     -f   Don't ask, think 'yes' on any question.

     remsync(1), cpdir(1), rsh(1), rcp(1), perror(3).

     Messages may come from three  different  processes.   One  named  "Slave"
     running  in dir1, one named "Master" running in dir2, and synctree itself
     in a mediator role.  The mediator will also perform the  task  of  either
     the  master  or the slave if one of them is running locally.  You need to
     know this to interpret the  error  messages  coming  from  one  of  these
     processes.   The  messages  are  normally based on perror(3).  Failure to
     contact a remote machine will be reported by rsh.  Synctree should have a
     zero exit status if no errors have been encountered.

     Directory dir2 will be created without asking.

     The master and slave processes get their error output mixed up  sometimes
     (nice puzzle).

     The local and remote machine must use the same file type encoding.

     The link replacement strategy may lead  to  lack  of  space  on  a  small
     device.   Let synctree run to completion and then rerun it to pick up the

     Letting the local process keep its "synctree" name may be a mistake.

     It talks too much.

     Kees J. Bot, (