SIPS Image Manipulation

Я пытаюсь использовать следующую команду, чтобы найти все PDF-файлы в текущем каталоге (не рекурсивно) - однако я не думаю, что ей нравится '{}' в --out.

find . -iname "*.pdf" -maxdepth 1 -exec sips -s format jpeg --resampleHeightWidth 129 100 '{}' --out '{}'.jpg \;

Работа поиска при использовании с -print и sips работает, когда я указываю имя --out test.jpg. Есть ли способ заставить эту работу? Или мне стоит попробовать 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

1 ответ

Если вы будете выполнять по многим результатам, более эффективно передать результаты в xargs команда вместо xargs Это более современная реализация, которая обрабатывает длинные списки более интеллектуальным способом. print0 опция может быть использована с этим.

Следующая команда гарантирует, что имена файлов с пробелами будут переданы исполняемой КОМАНДЕ без разделения оболочки. На первый взгляд выглядит сложным, но широко используется.

find . -print0 | xargs -0 COMMAND

ссылка

Другие вопросы по тегам