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