Вопрос: Терминал Mac: перебирайте подкаталоги и оптимизируйте все изображения


У меня есть папка, содержащая много вложенных папок с изображениями. Например, см. Прикрепленное изображение.

alt

В основном, я хочу, чтобы их все контуры и уменьшали изображения, поэтому ни один не превышает 1024 пикселя. Они все jpegs.

Я знаю команды SIPS, т. Е.

sips -Z 1024 *.png

Однако это работает только в том случае, если все изображения находятся в текущем каталоге.

Как настроить его для прохождения через все подкаталоги?


2
2017-07-21 23:37


Источник




Ответы:


Вы можете запустить его с помощью find: find images/path -type f -name '*.png' -exec sips -Z 1024 {} \;

Поиск будет искать файлы (-type f) с расширением png (-name '* .png) внутри каталога images / path и выполнить команду в параметре, заменив «{}» на имя файла, вам нужно закончить команда с "\;".


6
2017-07-21 23:53



Благодарю. У меня была проблема с тем, что на самом деле не изменяла размер, но делала то же самое с imagemagick: find /images/path -type f -iname "*.jpg" -execdir convert {} -resize 1024x1024\> -quality 70 {} \; - Quadrant6
Спасибо, я снова пробовал команду sips, она работает, как будто она что-то делает, но, похоже, не сохраняет новый файл ...? find images/path -type f -name "*.jpg" -exec sips -Z 1024 -s format jpeg -s formatOptions 80 {} \; - Quadrant6
@ Quadrant6 проверяет, не сохраняет ли файл в текущем каталоге, а также тестирует только команду sips в одном и том же пути, но указывая полное имя пути для файла тестового изображения. - denisvm