모든 파일(폴더 및 하위 폴더)에 대해 명령 실행

모든 파일(폴더 및 하위 폴더)에 대해 명령 실행

아무튼 PDF 파일이 많아요. 폴더와 하위 폴더의 모든 PDF에 동시에 적용할 수 있는 방법이 있습니까?

예를 들어 다음과 같습니다.

  • /pdf/test/pdfa.pdf
  • /pdf/example/aa/test.pdf

이 명령을 각 파일에 적용하고 싶습니다.

$ convert -density 200x200 -quality 60 \
    -compress jpeg filename.pdf filename_compress.pdf

누가 날 도울 수 있죠?

답변1

출력 파일에 대해 약간 다른 명명 체계를 채택하면 가장 쉽습니다. 이는 다음 filename.pdf과 같이 번역됩니다 filename.pdf-compress.pdf.

find . -name '*.pdf' -exec convert -density 200x200 -quality 60 -compress jpeg {} {}-compress.pdf ';'

원래 이름 지정 체계를 유지하려면 다음을 사용하십시오.

find . -name '*.pdf' -exec env f={} bash -c 'convert -density 200x200 -quality 60 -compress jpeg "$f" ${f%.pdf}_compress.pdf' ';'

관련 정보