![对所有文件(文件夹和子文件夹)运行命令](https://linux22.com/image/56579/%E5%AF%B9%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%EF%BC%88%E6%96%87%E4%BB%B6%E5%A4%B9%E5%92%8C%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%89%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4.png)
总之,我有很多 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' ';'