logo hsb.horse
← 스니펫 목록으로 돌아가기

Snippets

avifenc으로 이미지를 일괄 AVIF로 변환하기

jpg/jpeg/png 를 재귀적으로 탐색하여 avifenc 으로 .avif 로 변환하는 Bash 스니펫.

게시일: 수정일:

디렉터리 하위의 jpg/jpeg/png 를 일괄로 .avif 로 변환하는 최소 스크립트. 공백이 포함된 파일명에 대응하기 위해 find -print0read -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
)

메모

  • 동일한 이름의 .avif 가 있는 경우 덮어쓰기 된다
  • 변환 로그가 필요한 경우 >/dev/null 2>&1 을 제거한다

실무 메모

이 스니펫은 bash, avifenc, image, conversion, cli 주변에서 같은 조작이나 판정을 매번 다시 쓰고 싶지 않을 때 잘 맞는다. 작은 보조 단위로 빼 두면 호출부에서는 의도만 읽기 쉬워진다.

반대로 분기와 전제조건이 늘어나 책임이 커진다면, 하나의 스니펫에 전부 넣지 않는 편이 낫다. 절차와 helper를 나누거나 역할별로 쪼개 두는 편이 유지보수에 유리하다.