Raději používám příkaz 'rename', který přebírá regulární výrazy ve stylu Perlu:
rename "s/ /_/g" *
Suchý běh můžete provést pomocí parametru -n:
rename -n "s/ /_/g" *
Mělo by to stačit:
for file in *; do mv "$file" `echo $file | tr ' ' '_'` ; done
Přenosný způsob, jak získat velikost souboru (v bajtech) v shellu?
linuxová schránka pro čtení/zápis v C