При написании скриптов часто бывает необходимо производить какие-либо операции с пользовательскими файлами.
Файлы и каталоги, создаваемые в графическом интерфейсе операционных систем, работающих на базе Linux, могут иметь в названиях пробелы. Копирование/перемещение таких файлов скриптом может быть невозможно, поэтому предварительно пробелы в их названиях заменяются нижними подчеркиваниями.
Как в Bash заменить пробелы в названиях файлов и каталогов нижними подчеркиваниями
Замещение будем производить при помощи оператора tr подменяя в цикле пробел » » на нижнее подчеркивание «_». Содержимое директории обрабатывается файл за файлом, в процессе замены производится перемещение изначального файла/каталога в переименованный командой tr
for i in *;do mv «$i» `echo $i| tr » » «_»`; done
В случае если необходимо обрабатывать подобным образом только файлы с определенным расширением — его можно задать дополнительно, например, в виде *.jpg
Также читайте как удалить пробелы и знаки комментария в редакторе vi