logo hsb.horse
← Voltar para o índice de snippets

Snippets

Converter imagens em lote para AVIF com avifenc

Snippet Bash que percorre recursivamente arquivos jpg/jpeg/png e os converte para .avif usando avifenc.

Publicado: Atualizado:

Script mínimo para converter todos os arquivos jpg/jpeg/png em um diretório para .avif. Para lidar com nomes de arquivos contendo espaços, utiliza find -print0 e read -d ''.

#!/usr/bin/env bash
set -euo pipefail
while IFS= read -r -d '' file; do
avifenc "$file" -o "${file%.*}.avif" >/dev/null 2>&1
done < <(
find . -type f \( -name '*.jpg' -o -name '*.jpeg' -o -name '*.png' \) -print0
)

Observações

  • Se já existir um .avif com o mesmo nome, ele será sobrescrito
  • Para ver o log de conversão, remova >/dev/null 2>&1

Nota prática

Este snippet funciona bem quando você não quer reescrever a mesma operação ou a mesma verificação em rotinas ligadas a bash, avifenc, image, conversion, cli. Mantido como um apoio pequeno, ele deixa a intenção mais clara para quem chama.

Se as ramificações e as pré-condições começarem a crescer, é melhor não concentrar tudo em um único snippet. Separar o passo a passo, o helper e as responsabilidades costuma ser mais fácil de manter.