rsync is a tool to efficiently copy directory hierarchies, locally or remotely, with powerful filters to decide what gets copied.
- Rsync filter: copying one pattern only
- resume transfer of a single file by rsync
- Sync a local directory with a remote directory in Linux
If rsync doesn't seem to be able to do what you want, also look under sync.