Выполнив бесчисленные задачи по переименованию файлов с использованием циклов for
в bash
, я нахожу полезной утилиту rename
.
Это должно работать для вашего случая:
rename 's/\.jpeg-(\d+)/-$1.jpeg/g' images.jpeg-*
Примечание: я имею в виду модуль File::Rename
из Perl
, , а не , утилиту rename
, которая включена во многие дистрибутивы Linux в пакете util-linux
.
Если у вас уже есть версия от util-linux
, вы можете прочитать это:
Получите утилиту переименования Perl вместо встроенного переименования .
Есливы настроены на использование чистого bash
решения или просто не хотите хлопот с установкой rename
, это должно работать:
for i in images.jpeg-*; do
mv "$i" "images-${i##*-}.jpeg"
done