Предположим, вы просто хотите переименовать файлы. Затем, если вы используете оболочку Bourne (например, sh , bash), вы можете запустить команду для файлов, соответствующих шаблону, используя цикл for . Вот эквивалентные многострочные и однострочные версии:
for f in *.mid
do
    mv "$f" "${f%.mid}.wav"
done
for f in *.mid; do mv "$f" "${f%.mid}.wav"; done
Цикл for запускает команды, где $f является каждым словом в расширении *.mid , а ${f%.mid} удаляет суффикс .mid чтобы мы могли заменить его на .wav . Кавычки делают эту программу корректной для имен файлов, содержащих пробелы (но не для имен файлов, начинающихся с «-», поскольку это зависит от команды). Если вы хотите сопоставить несколько групп файлов, а не все, вы можете использовать несколько шаблонов, например for f in alpha-*.mid beta-*.mid; do ...
Вы можете использовать любую команду вместо mv . Я взглянул на справочную страницу Timidity, но я не мог понять, где он берет выходное имя файла, поэтому я не привел пример.