对所有文件(文件夹和子文件夹)运行命令

对所有文件(文件夹和子文件夹)运行命令

总之,我有很多 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.pdffilename.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' ';'

相关内容