Как преобразовать все изображения из подкаталогов в webp
Например, у меня есть папка с именем «Изображения», внутри которой находится 26 папок: a, b, c, d содержит несколько изображений, каждое из которых имеет разные форматы jpg, png,jpeg. Как преобразовать все эти изображения в webp и удалить оригиналы или скопировать преобразованные файлы в другое место с тем же именем подпапки.
1 ответ
В первую очередь рекомендую установить
imagick
пакет в вашем дистрибутиве Ubuntu.
Если он у вас не установлен, запустите
sudo apt install imagemagick
команда. Откройте папку, в которой у вас есть подпапки, содержащие файлы с расширениями, которые вы хотите преобразовать на своем терминале.
После этого выполните следующую команду на своем терминале:
find . -type f -name "*.png" -exec mogrify -format webp {} \; -print && find . -type f -name "*.jpg" -exec mogrify -format webp {} \; -print && find . -type f -name "*.jpeg" -exec mogrify -format webp {} \; -print
Вы также можете объединить все вышеперечисленные команды в одно выражение, используя регулярное выражение:
find . -type f -regex ".*\.\(jpg\|jpeg\|png\)" -exec mogrify -format webp {} \; -print
Чтобы удалить остатки (исходные файлы), выполните следующую команду:
find . -type f -regex ".*\.\(jpg\|jpeg\|png\)" -exec rm {} \; -print
Дополнительную информацию об использовании Imagick вы можете найти на их официальном сайте, а о mogrify здесь .