This worked after I used Krename to change all spaces to underscores. #!/bin/bash for i in `find . -name '*.tar' -o -name '*.rar' -o -name '*.zip'`; do echo "$i" done After which running the full script: #!/bin/bash for i in `find . -name '*.tar' -o -name '*.rar' -o -name '*.zip'`; do case "$i" in *.tar) mkdir `basename "$i" .tar` cd `basename "$i" .tar` tar xvf ../"$i" cd .. ;; *.rar) mkdir `basename "$i" .rar` cd `basename "$i" .rar` unrar e ../"$i" cd .. ;; *.zip) mkdir `basename "$i" .zip` cd `basename "$i" .zip` unzip -d ../"$i" cd .. ;; esac done Worked with the exception of the unzipping part unzip -d ../"$i" I probably made the wrong command for unzip. I'll look into that. Notes: I did away with all the .dir ending the mkdir basename; all it seemed to do was make all my folders have a .dir 'extension' (which wasn't necessary). If there is a specific reason for this addition that I'm not seeing, please inform me. Side effects: Underscores where spaces should be in folder names. Not a terribly difficult problem, but if I can work it without having to rename the files first, it'll save a lot of headache. Ed Wilts was commenting that to do that I may need something different from 'find'. Is there no way to work find so that it allows for spaces? -jordan