wired2051
Anmeldungsdatum: 28. Februar 2007
Beiträge: 2740
|
Beim Kopieren von Bild Dateien wurde der Änderung-Zeitstempel durch die aktuelle Zeit ersetzt. Wie kann ich die Änderungs-Zeit wieder auf die Aufnahmezeit ändern? Ich weiss, wie ich die Aufnahmezeit mit ExifTool ermittle und die Änderungszeit mit touch setze - aber wie automatisiere ich das mit verschiedenen Dateien? Muss man dafür ein Script schreiben (was ich nicht kann) oder gibt es dafür ein Tool?
|
Vegeta
Anmeldungsdatum: 29. April 2006
Beiträge: 7943
|
Ja entweder per Script oder z.B. mit KRename, das soll jedenfalls Exif-Daten auslesen können.
|
wired2051
(Themenstarter)
Anmeldungsdatum: 28. Februar 2007
Beiträge: 2740
|
Danke 👍 aber auch wenn dies eine inhaltlich zutreffende Antwort ist, so ist sie doch nicht hilfreich, denn ich weiss nicht, wie man ein solches Script schreibt. Ich weiss, dass KRename Exif-Daten auslesen kann. KRename kann aber, soweit ich weiss, nur Dateinamen und keine Dateiattribute schreiben. 😢
|
Vegeta
Anmeldungsdatum: 29. April 2006
Beiträge: 7943
|
Wenn KRename das nicht kann, dann sorry. Hier ein Skript aus'm Netz, habs nicht getestet daher am besten vorher in Kleinen testen. | find -name '*.jpg' | while read PIC; do
DATE=$(exiftool -p '$DateTimeOriginal' $PIC |
sed 's/[: ]//g')
touch -t $(echo $DATE | sed 's/(..$)/.1/') $PIC
mv -i $PIC $(dirname $PIC)/$DATE.jpg
done
|
|
wired2051
(Themenstarter)
Anmeldungsdatum: 28. Februar 2007
Beiträge: 2740
|
Ich hatte jetzt erst Zeit dafür... 😳 Vegeta schrieb: Hier ein Skript aus'm Netz, habs nicht getestet daher am besten vorher in Kleinen testen.
Super, vielen Dank! 👍 Leider werden die Dateien nur umbenannt nach dem Muster JJJMMTTHHMMSS. Der Änderung-Zeitstempel wird offenbar nicht verändert. 😢
|
hakel
Anmeldungsdatum: 13. August 2009
Beiträge: 23336
|
https://forum.ubuntuusers.de/topic/datum-in-jpg-eintragen-zb-fuer-google-fotos/#post-8871806
Der Änderung-Zeitstempel wird offenbar nicht verändert.
"Shotwell kann das Datum und die Zeit manipulieren, indem man ganz einfach alle gewünschten Bilder markiert und per „Photo → Adjust Date and Time“ um die gewünschte Zeit/das gewünschte Datum korrigiert." Ich nutze Shotwell nicht! Viele Wege führen nach Rom, aber das Problemist sicher lösbar. Im Zweifel mußt du halt eine GUI nutzen.
|
wired2051
(Themenstarter)
Anmeldungsdatum: 28. Februar 2007
Beiträge: 2740
|
Ich habe wirklich kein Problem damit ein GUI zu nutzen. Ich bevorzuge sogar Programme mit GUI. 😉 Shotwell ist leider keine Lösung meines Problems: Shotwell setzt bei allen markierten Fotos nur ein festgelegtes Datum oder verschiebt um eine bestimmte Zeitpanne. Das neue Datum wird in der Datei gespeichert (exifExif.Photo.DateTimeOriginal) und das Änderungsdatum der Datei dabei aktualisiert. Ich möchte das Aufnahmedatum (exifExif.Photo.DateTimeOriginal) auslesen und als Änderungsdatum der Datei setzen. hakel schrieb: https://forum.ubuntuusers.de/topic/datum-in-jpg-eintragen-zb-fuer-google-fotos/#post-8871806
Warum dieser Link? Trotzdem Danke für Deine Hilfebreitschaft! 👍
|
hakel
Anmeldungsdatum: 13. August 2009
Beiträge: 23336
|
In dem Link war nur ein alternatives Skript, das du vielleicht umbauen kannst. Eigentlich sollt das Skript von Vegeta aber reichen.
touch -t $(echo $DATE | sed 's/(..$)/.1/') $PIC Dieser Befehl macht doch -theoretisch- was du möchtest. https://wiki.ubuntuusers.de/touch/
|
wired2051
(Themenstarter)
Anmeldungsdatum: 28. Februar 2007
Beiträge: 2740
|
Das Skript hat leider Probleme mit Leerzeichen in Dateinamen. Ansonsten liest es zwar das Datum aus der Datei, benennt sie aber um (was ich lieber nicht will) und verändert das Änderungsdatum der Datei nicht. Alle Dateien werden (trotz der Meldung Warning: [minor] Unrecognized MakerNotes - ./Test8.jpg) umbenannt aber eben nicht mit Touch verändert. Die Fehlermeldung hilft (mir) nicht: | touch: Ungültiges Datumsformat »20170720111953“
touch: Ungültiges Datumsformat »20170729142836“
touch: Ungültiges Datumsformat »20170720115731“
...
|
|
hakel
Anmeldungsdatum: 13. August 2009
Beiträge: 23336
|
Alle Dateien werden (trotz der Meldung Warning: [minor] Unrecognized MakerNotes - ./Test8.jpg) umbenannt
Dannn laß mv doch weg ... 😲
touch: Ungültiges Datumsformat »20170720111953“
Da hast du doch eine super Fehlermeldung, ein Jahr 2k Problem. Lt. Wiki sollte es nur 17 sein, teste es manuell. touch -t 0912311627 datei.txt ; lt. Wiki also 2009
{Variable:Position:Länge}
Sonst mußt du selber noch mal suchen. Es ist auf jeden Fall lösbar, denke ich. 👍
|
wired2051
(Themenstarter)
Anmeldungsdatum: 28. Februar 2007
Beiträge: 2740
|
hakel schrieb: Da hast du doch eine super Fehlermeldung, ein Jahr 2k Problem. Lt. Wiki sollte es nur 17 sein, teste es manuell.
Darauf wäre ich nicht gekommen. Lustig. 😊 Aber Du hast recht, touch funktioniert so - jedenfalls wenn ich die Dateieigenschaften mit Dolphin kontrolliere. In Dolphin sind die Dateien auch nach Datum sortierbar, wie es sein soll. In der Konsole mit ls -l sieht es aber anders aus: | USER@RECHNER-VirtualBox:~/Schreibtisch$ touch -t 0912311627 Test58.JPG
USER@RECHNER-VirtualBox:~/Schreibtisch$ touch -t 0912311727 Test59.JPG
USER@RECHNER-VirtualBox:~/Schreibtisch$ ls -l Test*
-rwxrwx--- 1 USER USER 838731 Dez 31 2009 Test58.JPG
-rwxrwx--- 1 USER USER 1249393 Dez 31 2009 Test59.JPG
-rwxrwx--- 1 USER USER 1511179 Jul 30 23:27 Test60.JPG
-rwxrwx--- 1 USER USER 1632223 Jul 30 23:27 Test61.JPG
|
Muss mir das Sorgen machen? Und wie ändere ich die Zeile touch -t $(echo $DATE | sed 's/(..$)/.1/') $PIC? Vermutlich ist es besser in DATE=$(exiftool -p '$DateTimeOriginal' $PIC | die ersten beiden Zeichen zu entfernen. Ich habe aber keine Ahnung, wie man das in einem Script macht. 😳
|
hakel
Anmeldungsdatum: 13. August 2009
Beiträge: 23336
|
Versuch mal, ob das reicht.
Date=`echo $Date | awk '{print substr($Date, 2, 10) }'` Ich habe Xubuntu, bei mir klappt das.
|
wired2051
(Themenstarter)
Anmeldungsdatum: 28. Februar 2007
Beiträge: 2740
|
Syntax error: ")" unexpected (expecting "done") Das macht mich ratlos, offenbar stimmt was mit der Schleife nicht. Das ist die aktuelle Version: | find -name '*.jpg' | while read PIC; do
# DATE=$(exiftool -p '$DateTimeOriginal' $PIC |
Date=`echo $Date | awk '{print substr($Date, 2, 10) }'`
sed 's/[: ]//g')
touch -t $(echo $DATE | sed 's/(..$)/.1/') $PIC
# mv -i $PIC $(dirname $PIC)/$DATE.jpg
done
|
Edit: Oh, vermutlich war das eine Ergänzung, kein Ersatz? 😳 Also richtig so: | find -name '*.jpg' | while read PIC; do
DATE=$(exiftool -p '$DateTimeOriginal' $PIC |
Date=`echo $Date | awk '{print substr($Date, 2, 10) }'`
sed 's/[: ]//g')
touch -t $(echo $DATE | sed 's/(..$)/.1/') $PIC
# mv -i $PIC $(dirname $PIC)/$DATE.jpg
done
|
Jetzt kriege ich 1x die Meldung touch: Ungültiges Datumsformat »./Test8.jpg“ und das Script endet. Mit der mv-Zeile kriege ich eine noch komischere Meldung, finde ich: touch: Ungültiges Datumsformat »./Test8.jpg“
mv: das angegebene Ziel './Test9.jpg.jpg' ist kein Verzeichnis Warum wird einmal ./Test8.jpg und dann ./Test9.jpg bearbeitet? Und warum werden nicht alle Dateien bearbeitet?
|
hakel
Anmeldungsdatum: 13. August 2009
Beiträge: 23336
|
Jetzt aber! Schau dir mal genau an, was mein Quark macht. Das soll nur die 2 ersten Zeichen weg zwacken. sed reinigt die Ausgabe von exiftool. touch versteht doch nur → 1712311627 find -name '*.jpg' | while read PIC; do
DATE=$(exiftool -p '$DateTimeOriginal' $PIC | sed 's/[: ]//g')
Date=`echo $Date | awk '{print substr($Date, 2, 10) }'`
touch -t $(echo $DATE | sed 's/(..$)/.1/') $PIC
done Glaub bloß nicht, daß ich das verstehe. Macht Spaß, oder? 🙄
|
wired2051
(Themenstarter)
Anmeldungsdatum: 28. Februar 2007
Beiträge: 2740
|
hakel schrieb: Glaub bloß nicht, daß ich das verstehe. Macht Spaß, oder? 🙄
Freut mich, dass es Dir Spass macht. Dann traue ich mich auch, wieder nachzufragen. Es klappt bei mir nämlich immer noch nicht. 😢 Die Ausgabe sieht ungefähr so aus:
| Warning: [minor] Unrecognized MakerNotes - ./Bild_31.jpg
touch: Ungültiges Datumsformat »20170720205006“
touch: Ungültiges Datumsformat »20170720153205“
Warning: [minor] Unrecognized MakerNotes - ./Bild_21.jpg
touch: Ungültiges Datumsformat »20170720191105“
touch: Ungültiges Datumsformat »20170714205915“
touch: Ungültiges Datumsformat »20170729143748“
Warning: [minor] Unrecognized MakerNotes - ./Bild_05.jpg
...
|
Wobei ich nicht erkennen kann, warum einige Dateien Unrecognized MakerNotes haben und andere nicht. Sowohl Krename als auch Gwenview können bei allen Dateien die Exif-Daten auslesen. Die Dateiattribute werden, soweit ich das erkennen konnte, nirgends geändert. Ausserdem würde ich die geänderten Dateien nun doch in ein Unterverzeichnis kopieren wollen. Wie müsste ich die mv-Zeile ändern? So sieht mein Script derzeit aus: | find -name '*.jpg' | while read PIC; do
DATE=$(exiftool -p '$DateTimeOriginal' $PIC | sed 's/[: ]//g')
Date=`echo $Date | awk '{print substr($Date, 2, 10) }'`
touch -t $(echo $DATE | sed 's/(..$)/.1/') $PIC
#mv -i $PIC $(dirname $PIC)/$DATE.jpg # nicht umbenennen
done
|
|