bash에서 변환 명령을 사용하여 특정 디렉토리의 모든 이미지 크기를 조정하는 방법은 무엇입니까?

bash에서 변환 명령을 사용하여 특정 디렉토리의 모든 이미지 크기를 조정하는 방법은 무엇입니까?

~/somefolder/파일 이름이 원래 크기로 시작하지 않는 모든 PNG 파일의 크기를 원래 크기의 50%로 조정하고 tn_as 접두사와 원래 이름을 사용하여 출력 파일의 이름을 바꾸고 싶습니다 . tn_변환 명령이 있다는 것을 알고 설치했습니다. 나는 이것이 bash와 약간의 마법으로 이루어질 수 있다고 생각하지만 나는 Unix를 처음 접했습니다. 저는 Mac OSX를 사용하고 있습니다.

어떻게 해야 합니까?

답변1

이를 수행하는 한 가지 방법은 다음과 같습니다(파일에 넣고 POSIX 셸(예: bash또는 )을 사용하여 실행 ksh).

cd ~/somefolder/ || exit 1
for f in *.png
do
  case $f in
  (tn_*) continue ;;
  (*) convert "${f}" -resize 50%x50% "tn_${f}" ;;
  esac
done

최신 셸에서는 이 case구문을 보다 간결한 조건부 명령으로 대체할 수도 있습니다.

cd ~/somefolder/ || exit 1
for f in *.png
do
    [[ "$f" != tn_* ]] && convert "${f}" -resize 50%x50% "tn_${f}"
done

(그러나 이 코드는 메모리에서 가져온 것이며 테스트되지 않았으므로 convert실제 크기 조정 구문에 대한 명령을 확인하고 먼저 일부 샘플 디렉터리에 있는 몇 가지 샘플 파일에서 시도해 보십시오.)

관련 정보