1

次のコマンドを使用して、現在のディレクトリ内のすべての 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
4

1 に答える 1

2

多くの結果に対して実行する場合は、xargs代わりに結果をコマンドにパイプする方が効率的です。xargsはより現代的な実装であり、長いリストをよりインテリジェントな方法で処理します。オプションはこれ print0で使用できます。

次のコマンドは、空白を含むファイル名が、シェルによって分割されることなく、実行された COMMAND に渡されることを保証します。一見複雑に見えますが、広く使われています。

find . -print0 | xargs -0 COMMAND

参照

于 2013-01-29T18:40:22.533 に答える