rename(){ txtToReplace=${1} ; replacementTxt=${2} ; shift 2 ; files=${@} ; for file in $files ; do mv ${file} ${file/${txtToReplace}/${replacementTxt}} ; done ; }
Это баш-функция, которая переименовывает файлы, заменяя части их имен. Она получает в качестве аргументов подстроку для замены (txtToReplace), текст для замены (replacementTxt) и список файлов (files), в именах которых будет производиться замена.
Функция работает следующим образом: последовательно перебирает файлы, для каждого файла выполняется команда mv, которая переименовывает файл, заменяя в его имени txtToReplace на replacementTxt с помощью параметрной подстановки ${file/${txtToReplace}/${replacementTxt}}.
Это более гибкий способ переименования файлов, поскольку позволяет использовать любую подстроку для замены, а не только расширение файла.
Возможной альтернативой может быть использование команды rename из пакета util-linux (Linux) или prename (BSD), которая использует регулярные выражения для переименования файлов.