logo hsb.horse
← Retour à l’index des snippets

Snippets

Convertir des images en AVIF en lot avec avifenc

Un script Bash qui parcourt récursivement les fichiers jpg/jpeg/png et les convertit en .avif avec avifenc.

Publié: Mis à jour:

Un script minimal pour convertir en masse tous les fichiers jpg/jpeg/png d’un répertoire en .avif. Pour gérer les noms de fichiers contenant des espaces, on utilise find -print0 et 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
)

Notes

  • Si un fichier .avif du même nom existe déjà, il sera écrasé
  • Pour afficher les logs de conversion, retirer >/dev/null 2>&1

Note pratique

Ce snippet convient bien quand on ne veut pas réécrire la même opération ou la même vérification autour de bash, avifenc, image, conversion, cli. Le garder sous la forme d’un petit utilitaire rend l’intention plus lisible côté appelant.

En revanche, si les branches et les préconditions s’accumulent, mieux vaut ne pas tout tasser dans un seul snippet. Séparer la procédure, le helper et les responsabilités rend l’ensemble plus simple à maintenir.