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"' {} ;