[[!comment format=mdwn username="mhameed" ip="82.32.202.53" subject="problems with spaces in filenames" date="Wed Sep 5 09:38:56 BST 2012" content=""" Spaces, and other special chars can make filename handeling ugly. If you don't have a restriction on keeping the exact filenames, then it might be easiest just to get rid of the problematic chars. #!/bin/bash function process() { dir="$1" echo "processing $dir" pushd $dir >/dev/null 2>&1 for fileOrDir in *; do nfileOrDir=`echo "$fileOrDir" | sed -e 's/\[//g' -e 's/\]//g' -e 's/ /_/g' -e "s/'//g" ` if [ "$fileOrDir" != "$nfileOrDir" ]; then echo renaming $fileOrDir to $nfileOrDir git mv "$fileOrDir" "$nfileOrDir" else echo "skipping $fileOrDir, no need to rename." fi done find ./ -mindepth 1 -maxdepth 1 -type d | while read d; do process "$d" done popd >/dev/null 2>&1 } process . Maybe you can run something like this before checking for duplicates. """]]