Mac Terminal: Unterverzeichnisse durchsuchen und alle Bilder optimieren

Mac Terminal: Unterverzeichnisse durchsuchen und alle Bilder optimieren

Ich habe einen Ordner mit vielen Unterordnern voller Bilder. Siehe beispielsweise das angehängte Bild.

alt

Im Grunde möchte ich sie alle durchlaufen und die Bilder verkleinern, sodass keines breiter als 1024 Pixel ist. Es sind alles JPEGs.

Ich kenne die SIPS-Befehle, d. h.

sips -Z 1024 *.png

Das funktioniert allerdings nur, wenn sich alle Bilder im aktuellen Verzeichnis befinden.

Wie richte ich es ein, um alle Unterverzeichnisse zu durchsuchen?

Antwort1

Sie können es mit find ausführen:find images/path -type f -name '*.png' -exec sips -Z 1024 {} \;

„Find“ sucht nach Dateien (-Typ f) mit der Erweiterung PNG (-Name „*.png“) im Verzeichnis „images/path“ und führt den Befehl im Parameter aus, wobei „{}“ durch den Dateinamen ersetzt wird. Sie müssen den Befehl mit „\;“ beenden.

Antwort2

Ich habe es geschafft, ein kleines Bash-Skript zu ändern, das bei mir funktioniert hat

#!/bin/bash

find "foldername" -type f | \
while read file ; do
    echo "processing ${file}"
    sips -Z 2000 ${file}
done

verwandte Informationen