it-swarm.com.de

Wie kann ich rekursiv Exif-Informationen von allen Bildern in einem Verzeichnis entfernen?

for i in *.jpg; do echo "Processing $i"; exiftool -all= "$i"; done

Ich muss diese Codezeile anpassen, die alle exif-Informationen von Bildern in einem Verzeichnis entfernt. Ich brauche es zu;

  • nicht fehlschlagen, wenn das aktuelle Verzeichnis leer ist
  • rekursiv sein, um mit Unterverzeichnissen umzugehen
  • cover * .gif * .jpeg * .png auch

Könnte mich jemand in die richtige Richtung weisen?

5
Dave

Es ist kein Skript erforderlich, ExifTool kann dies selbst ausführen und es ist viel schneller als das Durchlaufen von Elementen.
exiftool -r -all= -ext jpg -ext gif -ext png /path/to/top/directory/

-r Durchsuchen von Unterverzeichnissen
-ext … Beschränken Sie verarbeitete Dateien auf bestimmte Ausmaße. Entfernen Sie diese Elemente, um alle Dateien zu verarbeiten, für die Exiftool Metadaten entfernen kann.

10
StarGeek

Da exiftool fantastisch ist, besteht keine Notwendigkeit dafür, aber im Prinzip könnte man mit find so etwas machen ...

Überprüfen Sie zunächst, ob Ihre Suche das gewünschte Ergebnis liefert (verwenden Sie -iname, um die Groß- und Kleinschreibung zu ignorieren, da sowohl .JPG als auch .jpg usw. gemeinsam sind).

find . -iname '*.jpg' -or -iname '*.png' -or -iname '*.jpeg' -or -iname '*.gif' 

if gibt eine Liste der gefundenen Dateien mit Pfaden aus, die hier beginnen (einschließlich der Unterverzeichnisse)

wiederholen Sie dann das Hinzufügen des Befehls, um auf die am Ende gefundenen Dateien zu reagieren. | xargs exiftool -all=

find . -iname '*.jpg' -or -iname '*.png' -or -iname '*.jpeg' -or -iname '*.gif' | xargs exiftool -all=

oder sicherer, wenn Dateinamen Leerzeichen enthalten, verwenden Sie null als Begrenzer anstelle von Leerzeichen:

find . -iname '*.jpg' -print0 -or -iname '*.png' -print0 -or -iname '*.jpeg' -print0 -or -iname '*.gif' -print0 | xargs --null exiftool -all=

Wenn nichts passt (zum Beispiel ist das Verzeichnis leer), dann tut es nichts

. ist das aktuelle Arbeitsverzeichnis. Wenn Sie nicht da sind, ersetzen Sie find . durch find /path/to/parent/directory

1
Zanna