我正在尝试使用以下命令查找当前目录中的所有PDF(不是递归的) - 但是我认为它不喜欢--out上的"{}"。
find . -iname "*.pdf" -maxdepth 1 -exec sips -s format jpeg --resampleHeightWidth 129 100 '{}' --out '{}'.jpg ;
当我指定名称 --out test.jpg 时,与 -print 和 sips 一起使用时查找工作。 有什么方法可以做到这一点吗?还是我应该尝试xargs?我真的不想为了简单起见使用循环......有什么想法吗?
更新:我尝试使用 xargs - 但再次收到错误out_dir_not_found。
find . -iname "*.pdf" -maxdepth 1 -print0 | xargs -0 -I % sips -s format jpeg --resampleHeightWidth 129 100 % --out "%.jpg"
mymbpro:pdfs dh$ find . -iname "*.pdf" -maxdepth 1 -print0 | xargs -0 -I % sips -s format jpeg --resampleHeightWidth 129 100 % --out "%.jpg"
Error 10: out_dir_not_found /Users/darenhunter/Desktop/pdfs/ATTENTION.pdf.jpg
Try 'sips --help' for help using this tool
Error 10: out_dir_not_found /Users/darenhunter/Desktop/pdfs/DisNCLB119.pdf.jpg
Try 'sips --help' for help using this tool
Error 10: out_dir_not_found /Users/darenhunter/Desktop/pdfs/services2012.pdf.jpg
Try 'sips --help' for help using this tool
Error 10: out_dir_not_found /Users/darenhunter/Desktop/pdfs/Fall2011.pdf.jpg
Try 'sips --help' for help using this tool
如果要执行许多结果,则通过管道 改为
xargs
命令的结果。xargs
更现代 实现,并以更智能的方式处理长列表。这print0
选项可以与此一起使用。以下命令将确保传递带有空格的文件名 到执行的命令,而不会被外壳拆分。它看起来 乍一看很复杂,但被广泛使用。
find . -print0 | xargs -0 COMMAND
裁判