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