Batch Run Mogrify einschließlich Unterverzeichnisse

13

Der Befehl mogrify -format jpg *.NEFkonvertiert in einem Verzeichnis alle * .NEF- Dateien in JPEGs. Ich möchte in der Lage sein, mogrify auch in * .NEF- Dateien in Unterverzeichnissen mit einem Befehl auszuführen . Ich versuche so etwas wie:

find . -type d exec mogrify -format jpg *.NEF \;

und natürlich funktioniert es nicht. Kann jemand den richtigen Befehl vorschlagen?

Regmi
quelle

Antworten:

16

Es sieht so aus, als würde mogrify aus ImageMagick 6.9.9.19 das Ergebnis in dasselbe Verzeichnis wie die Eingabedatei schreiben, sodass Sie diesen Befehl verwenden können:

find . -name '*.NEF' -exec mogrify -format jpg {} +

Erläuterung:

  • -name '*.NEF'findet alle * .NEF- Dateien; Verwenden -inameSie diese Option, wenn bei der Suche die Groß- und Kleinschreibung nicht berücksichtigt werden soll.

  • -exec ... {} +führt den Befehl für alle übereinstimmenden Dateien aus. Eine Alternative wäre, find mit xargs zu kombinieren .

Cristian Ciupitu
quelle
Nur ein Tipp, vielleicht möchten Sie dies ein wenig erweitern, da es als minderwertig markiert wurde. Erklären Sie im Detail, was der Befehl tut.
Perfekt arbeiten. Ich benutze dies für die Konvertierung von SVG in PNG mit: "find. -Name '* .svg' -exec mogrify -format jpg {} +"
Indacochea Wachín