Я пытаюсь преобразовать все файлы в данном каталоге с суффиксом ".foo" в файлы, содержащие такое же базовое имя, но с суффиксом, измененным на ".bar". Я могу сделать это с помощью сценария оболочки и цикла for, но я хочу написать однострочник, который достигнет той же цели.
Цель:
Ввод: * .foo
Выход: * .bar
Вот что я пробовал:
find . -name "*.foo" | xargs -I {} mv {} `basename {} ".foo"`.bar
Это близко, но неверно. Результаты:
Ввод: * .foo
Вывод: * .foo.bar
Есть идеи, почему данный суффикс не распознается по базовому имени? Кавычки вокруг ".foo" не являются обязательными, и результаты такие же, если они опущены.