Есть в Linux (и BSD системах) такой пакет basename. Он может возвращать как целое имя файла, так и часть.
Попробуем получить имя файла без расширения, делается это так
# basename file.txt .txt
file
Например, нам надо переименовать файл file.txt в file.doc, пожалуйста
# mv file.txt `basename file.txt .txt`
Надо изменить расширение у группы файлов? Делаем так
# find /myfiles -type f -name "*.txt" -exec mv {} `basename {} .wav` \;
Так просто можно изменять расширение у одного или нескольких файлов (например с txt на wav 🙂