The following command recursively copies files and folders using rsync, excluding hidden ones:

rsync -av --exclude=".*" <path/to/source> <path/to/destination>

Source