찾기로 확장을 생략 하시겠습니까? 다음 호출을 사용하고 있습니다 (두

여러 .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두 번째 {}매개 변수 에서 확장을 제거하려면 어떻게 해야합니까?



답변

가장 쉬운 방법 {}은 쉘을 다음과 같이 전달 sh하여 쉘이 수행하도록하는 것입니다.

find ... \
    -exec sh -c 'convert "$0" -thumbnail 200x200 "${0%.png}.thumb.png"' {} \;