이미지로 가득 찬 많은 하위 폴더가 포함된 폴더가 있습니다. 예를 들어 첨부된 이미지를 참조하세요.
기본적으로 나는 그것들을 모두 반복하고 이미지의 크기를 줄여서 1024픽셀보다 더 넓은 이미지가 없도록 하고 싶습니다. 모두 JPEG입니다.
나는 SIPS 명령을 알고 있습니다. 즉
sips -Z 1024 *.png
그러나 이는 모든 이미지가 현재 디렉터리에 있는 경우에만 작동합니다.
모든 하위 디렉터리를 통과하도록 어떻게 설정합니까?
답변1
find로 실행할 수 있습니다:find images/path -type f -name '*.png' -exec sips -Z 1024 {} \;
Find는 'images/path' 디렉토리 내에서 png 확장자(-name '*.png')를 사용하여 파일(-type f)을 검색하고 매개변수의 명령을 실행하며 "{}"를 파일 이름으로 바꿔야 합니다. "\;"가 포함된 명령입니다.
답변2
나는 나에게 도움이 되는 작은 bash 스크립트를 변경했습니다.
#!/bin/bash
find "foldername" -type f | \
while read file ; do
echo "processing ${file}"
sips -Z 2000 ${file}
done