Ich muss Thumbnails aus mehreren .png-Dateien erstellen und möchte dies mit ImageMagicks convert
tun Nützlichkeit. Um rekursiv alle Dateien zu finden, die selbst keine Thumbnails sind, verwende ich den folgenden Aufruf (aufgeteilt in zwei Zeilen, um ihn lesbar zu machen):
find . -type f -name "*.png" -not -name "*thumb.png*"
-exec convert {} -thumbnail 200x200 {}.thumb.png ;`
Aber das würde natürlich eine Datei namens a.png.thumb.png
erzeugen wenn es auf einer Datei namens a.png
ausgeführt wird . Wie könnte ich die .png
entfernen Erweiterung ab dem zweiten {}
übergebener Parameter zum Konvertieren?
Akzeptierte Antwort:
Der einfachste Weg, dies zu tun, besteht darin, den {}
zu übergeben weg zu einer Shell wie sh
und lassen Sie es die Shell tun:
find ...
-exec sh -c 'convert "$0" -thumbnail 200x200 "${0%.png}.thumb.png"' {} ;