Esse script localizará todos os arquivos em um diretório de destino e gerará um novo script que renomeará todos os arquivos para não ter espaços. Você pode então revisar o roteiro como quiser antes da execução:
#!/bin/bash
TARGET=/path/to/files
NEWSCRIPT=${HOME}/rename-spaced-files.sh
OLDIFS="${IFS}"
IFS="\n"
for file in $(find ${TARGET}/ -type f -name "* *"); do
if [[ -f \"${file// /}\" ]]; then
echo "# \"${file// /}\" already exists- come up with a new name for it and uncomment the next line" >> $NEWSCRIPT
echo -n "# " >> $NEWSCRIPT
fi
echo "mv \"${file}\" \"${file// /}\"" >> $NEWSCRIPT
done