Well after hearing why the script was created I have 2 suggestions:
1. Complete the script as it is a great learning experience for any future scripts you might create. Plus if you follow some of my advice above and save it for later, you can refer to it when you write your next script on things to do an good practice.
2. man rsync - this toll does basically exactly what you are looking for, but like most things it takes practice to be good at using the correct features
On a side note, I thought of another issue with your current script which would throw you all types of issues. If we assume we are in your home directory and one of the directory names you pas in is 'bin', the first issue is that 'bin' would have to be in the directory you are in. However, an ongoing issue would be if 'bin' also has a directory under it , we'll call it 'next_dir'. In your current code when you hit 'next_dir' you will use traverse on it, but because you use ls it will perform the following at the start of the while loop:
Code:
ls next_dir | | while read LSRESULTS
The issue is, 'next_dir' is not in the current directory or if it is you will get files from it and not the one you were looking for. This would mean if you are then to move the files, you may well now move files that were either already moved and cause a collision, or move files that should not be moved at all.
So I hope you stick with the script and am happy to help and answer more questions. Of course if time is an issue you may choose to use rsync, but like I said this is not necessarily a simple alternative.
Here are some other links which may assist in your script:
http://tldp.org/LDP/abs/html/
http://mywiki.wooledge.org/TitleIndex (Once you are better at scripting, I would work all the way through this site at your leisure)