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 bashset -euo pipefail
while IFS= read -r -d '' file; do avifenc "$file" -o "${file%.*}.avif" >/dev/null 2>&1done < <( find . -type f \( -name '*.jpg' -o -name '*.jpeg' -o -name '*.png' \) -print0)Notes
- Si un fichier
.avifdu même nom existe déjà, il sera écrasé - Pour afficher les logs de conversion, retirer
>/dev/null 2>&1
hsb.horse