Как заменить пробелы в названии файла на символы подчёркивания

Чтобы заменить в названии файла пробелы, например, на символы подчёркивания в bash, можно воспользоваться встроенными средствами shell.

F="Файл с пробелами в названии" ; mv $F ${F// /_}

Эта команда состоит из двух команд, разделённых символом точка с запятой:

  • F="Файл с пробелами в названии"

Этой командой мы вводить переменную окружения F, которой присваиваем значение - имя файла, который мы хотим переименовать.

Просмотреть значение этой переменной можно, например, командой

echo $F
  • mv $F ${F// /_}

Этой командой мы переименовываем файл, имя которого является значением переменной окружения F.

Запись вида ${X/abc/def} возвращает строковое значение переменной окружения X с заменой первого вхождения подстроки abc на строку def.

Чтобы получить тот же результат с заменой всех вхождений подстроки abc строкой def, следует использовать запись вида ${X//abc/def}.

Соответственно, запись ${F// /_} возвращает в качестве второго аргумента команды mv имя файла, в котором все символы пробел заменены на символ подчёркивания.