I am trying to synchronize the files recursively in the 2 dirs, so that everything in the source is checked in the destination, and updated if necessary, using md5's to check the files.
Understood. In that case, once you follow my above suggestion for putting relative paths into the hash keys, then your cp statement simply becomes this: