Хорошим решением является создание набора резервных копий (например, с префиксом backup-
), вращение исходных файлов с получением набора новых файлов (например, с префиксом rotated-
), что дает вам набор
img-1.png
backup-img-1.png
rotated-img-1.png
img-2.png
- ...и так далее
В mv
/ cp
tools [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 270
90 ° против часовой стрелки)
- для отслеживания прогресса, добавить
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-*