In the new days, rsync -a dir1/ dir2 is the ticket ...
If you rsync more than once, only the files in dir1 that have changed are copied. 

More then that.  It uses a clever algorithm to send over only changes.  It was the basis of Tridgedell's PhD thesis.  https://www.samba.org/~tridge/phd_thesis.pdf