the only files you have to watch for are the root level directories that you're copying, cp -a takes care of the wacky file names based on the fact that it reads the filenames within the program (opendir) rather than on the command line.
Yes, but that shell script won't.
Bruce