Хорошим решением является создание набора резервных копий (например, с префиксом backup-), вращение исходных файлов с получением набора новых файлов (например, с префиксом rotated-), что дает вам набор
img-1.png
backup-img-1.png
rotated-img-1.png
img-2.png
- ...и так далее
В mv/ cptools [bash globbing] можно добавлять только префиксы, грязно их убирать (будет использоваться расширение параметров, например ...)
renameИнструмент позволяет использовать s/before/after/заместительный синтаксис (от sedинструмента) для обмена префикса защитительного и перезаписать исходные файлы, так что ваш общий процесс для данного набора картинок img-{1..n}.png будет:
for imgf in img-*.png; do mv "$imgf" "backup-$imgf"; done
for imgf in backup-img-*.png; do convert "$imgf" -rotate 90 "rotated-$imgf"; done
Заметка:
- Вы могли бы использовать
cpвместо mv, но тогда есть 2 копии оригинала, лежащих без дела (недостатком является то, что вы получаете объединение префиксов, " rotated-backup-...")
- вращение по часовой стрелке (
-rotate 27090 ° против часовой стрелки)
- для отслеживания прогресса, добавить
echo "Rotating ${imgf#backup-} ... ";после convertзвонков (до done)
для более компактной формы (например, набора пронумерованных файлов) используйте расширение некоторых параметров, например, echo "$(echo ${imgf#backup-img-} | cut -d\. -f 1)...";вместо
(Вы не можете удалить префикс и суффикс в одном расширении bash param, поэтому используйте cut)
Затем после проверки вы не перепутали, удалите картинки, переместив их обратно в оригинал
rename 's/^rotated-//;' rotated-*
rm backup-img-*