Preferisco usare il comando 'rename', che accetta espressioni regolari in stile Perl:
rename "s/ /_/g" *
Puoi eseguire una prova a secco con il flag -n:
rename -n "s/ /_/g" *
Questo dovrebbe farlo:
for file in *; do mv "$file" `echo $file | tr ' ' '_'` ; done