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;
Könnte mich jemand in die richtige Richtung weisen?
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.
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