수십 개의 폴더에 분산된 여러 특정 이미지를 일괄 변환합니다.

수십 개의 폴더에 분산된 여러 특정 이미지를 일괄 변환합니다.

명령줄 전용 서버의 서로 다른 폴더에 각각 있는 JPG 파일 목록이 있는데, 이 파일을 PNG로 변환해야 합니다.

나는 mogrify를 사용하여 하나씩 변환하는 간단한 명령을 알고 있습니다. 하지만 다음과 같이 다양한 폴더에 걸쳐 다양한 이름의 이미지가 약 300개 있습니다.

/home/user/dfp/app/roundtable/wp-content/uploads/2022/06/play.jpg
/home/user/dfp/app/roundtable/wp-content/uploads/2021/02/turn.jpg
/home/user/dfp/app/roundtable/wp-content/uploads/2020/01/up.jpg
/home/user/dfp/app/roundtable/wp-content/uploads/2022/09/down.jpg
/home/user/dfp/app/roundtable/wp-content/uploads/2021/01/left.jpg
etc etc

각 디렉토리에도 수천 개의 다른 이미지가 있으므로 전혀 변경하고 싶지 않습니다. 내 목록에 있는 특정 파일만.

내가 가지고 있는 이미지 목록을 일괄/대량 변환할 수 있는 간편한 시계가 있나요? 말 그대로 위의 예와 같은 이미지 목록이 .txt 파일에 있습니다.

답변1

간단한 쉘 루프를 사용하여 목록 파일에서 파일 이름을 읽고 처리할 수 있습니다. 예를 들어 쉘 에서 bash:

while IFS= read -r file; do
  # your mogrify command on "$file"
done < path/to/listfile.txt

대화형 bash 명령줄에서 실행하거나 #!/bin/bash상단에 shebang이 있는 스크립트로 실행할 수 있습니다.

관련 정보