Say you would like to transfer set of files from location A to B. The source directory is really big but you are only interested in transferring some files (say *.png only). rsync is a good tool for the job. There are two methods I know that can be utilized.
find + rsync
Use find to select the files and then send them over with rsync:
This will create the minimum directories (and sub-directories) required for your files.
Use rsync command only with –include and –exclude options.
The difference from the previous command is that rsync will create all the directories from source in destination, and then copy *.png files. It will potentially leave your destination filled with empty directories – which may or may not be what you want.