There is a special option in
This tells rsync to remove from the sending side the files
(meaning non-directories) that are a part of the transfer and
have been successfully duplicated on the receiving side.
Note that you should only use this option on source files that
are quiescent. If you are using this to move files that show up
in a particular directory over to another host, make sure that
the finished files get renamed into the source directory, not
directly written into it, so that rsync can’t possibly transfer
a file that is not yet fully written. If you can’t first write
the files into a different directory, you should use a naming
idiom that lets rsync avoid transferring files that are not yet
finished (e.g. name the file "foo.new" when it is written,
rename it to "foo" when it is done, and then use the option
--exclude='*.new' for the rsync transfer).
Starting with 3.1.0, rsync will skip the sender-side removal
(and output an error) if the file’s size or modify time has not
File deletion at destionation depends on your options. But, afair, it will delete nothing while you do not use any
--delete-before, etc options.