rsync does all that.
I backup my mainfolder (and subfolders ) to my NAS1 and NAS2. For NAS1 I have the --delete flag so mainfolder and NAS1 are always the same. diff mainfolder NAS1
shows me all dirs/files are common.
But for NAS2 I don't have the --delete flag so NAS2 will contain other files, folders and eventually grows. If there is a file with same name, rsync will replace on DEST. diff mainfolder NAS2
will show the common and differences.
I suggest make two folders, /home/smith/mainfolder and /home/smith/nas1, throw some files in mainfolder, rsync mainfolder nas1
. Modify files in mainfolder, rsync again, see the result.
Do, diff mainfolder nas1
The Web has plenty of examples how to use rsync.