bash замена пробелов в названиях файлов


При написании скриптов часто бывает необходимо производить какие-либо операции с пользовательскими файлами.
Файлы и каталоги, создаваемые в графическом интерфейсе операционных систем, работающих на базе Linux, могут иметь в названиях пробелы.



Копирование/перемещение таких файлов скриптом может быть невозможно, поэтому предварительно пробелы в их названиях заменяются нижними подчеркиваниями.



Как в Bash заменить пробелы в названиях файлов и каталогов нижними подчеркиваниями

Замещение будем производить при помощи оператора tr подменяя в цикле пробел " " на нижнее подчеркивание "_".


Содержимое директории обрабатывается файл за файлом, в процессе замены производится перемещение изначального файла/каталога в переименованный командой  tr

for i in *;do mv "$i" `echo $i| tr " " "_"`; done


В случае если необходимо обрабатывать подобным образом только файлы с определенным расширением — его можно задать дополнительно, например, в виде *.jpg



Также читайте как удалить пробелы и знаки комментария в редакторе vi

Сказать спасибо