rsync

$ rsync -aAXv –delete –exclude={/home/ferdy/temp/*,/home/ferdy/.cache/*} {source} {destination}

Options:
-a – archive
-A – ACL permision
-X – eXtented permision
-v – verbose
–delete – if it exist in the backup destination, delete it.

Transfering files:
$ rsync -r source destination

Example:
$ rsync -r /home/ferdy/. ferdy@confignotes:~/.

Installation:

Ubuntu:
# apt install rsync

Arch Linux:
# pacman -S rsync

Fedora:
# dnf install rsync

GUI version: grsync