여러 .png 파일에서 축소판을 만들어야 하는데 ImageMagicks convert
유틸리티를 사용하여 이 작업을 수행하고 싶습니다. 축소판 자체가 아닌 모든 파일을 재귀적으로 찾으려면 다음 호출을 사용합니다(읽을 수 있도록 두 줄로 분할).
find . -type f -name "*.png" -not -name "*thumb.png*" \
-exec convert {} -thumbnail 200x200 {}.thumb.png \;`
a.png.thumb.png
그러나 이것을 파일 이름으로 실행하면 당연히 a.png
. 변환에 전달된 .png
두 번째 매개변수 {}
에서 확장자를 제거하려면 어떻게 해야 합니까?
답변1
{}
가장 쉬운 방법은 이것을 쉘에 전달 sh
하고 쉘이 이를 수행하도록 하는 것입니다.
find ... \
-exec sh -c 'convert "$0" -thumbnail 200x200 "${0%.png}.thumb.png"' {} \;