Zeitstempel verändern (gelöst)

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
rolfti
Beiträge: 331
Registriert: 09.08.2004 22:29:44
Wohnort: Lugano

Zeitstempel verändern (gelöst)

Beitrag von rolfti » 15.02.2010 09:47:58

hi, möchte in einem Script einige hunderte *jpg Dateien deren Zeitstempfel ändern, und zwar um je ~60-Sekunden.
Bsp: pict00035.jpg 1.4MB JPEG-Bild 15.09.2008 13:05 > 15.09.2008 13:06

Im Konqueror sieht das so aus:

Code: Alles auswählen

pict00035.jpg	1.4MB JPEG-Bild 	15.09.2008 13:05
pict00033.jpg	1.2MB JPEG-Bild 	15.09.2008 13:35
pict00032.jpg	1.4MB JPEG-Bild 	15.09.2008 13:38
dazu starte ich folgendes script:

Code: Alles auswählen

#!/bin/sh
cd /home/data/bilder/portovenere/
let TIMESTAMP=`date +%s`
for FILE in `ls`
do
MOD_DATE=`date -r $TIMESTAMP +%Y%m%d%H%M`
echo $FILE
touch -t $MOD_DATE $FILE
let TIMESTAMP=$TIMESTAMP+60
done
Doch klappt es nicht :oops: ich erhalte:

Code: Alles auswählen

touch: Ungültiges Datumsformat „pict0031.jpg“
date: 1266224407: Datei oder Verzeichnis nicht gefunden
pict0032.jpg
touch: Ungültiges Datumsformat „pict0032.jpg“
date: 1266224497: Datei oder Verzeichnis nicht gefunden
pict0033.jpg
touch: Ungültiges Datumsformat „pict0033.jpg“
date: 1266224587: Datei oder Verzeichnis nicht gefunden
pict0034.jpg
thx
Zuletzt geändert von rolfti am 15.02.2010 12:49:34, insgesamt 1-mal geändert.

cosmac
Beiträge: 4579
Registriert: 28.03.2005 22:24:30

Re: Zeitstempel verändern

Beitrag von cosmac » 15.02.2010 10:33:30

hi,

wie sollen die Zeiten denn hinterher aussehen?

Code: Alles auswählen

pict00035.jpg   1.4MB JPEG-Bild    15.09.2008 13:06
pict00033.jpg   1.2MB JPEG-Bild    15.09.2008 13:36
pict00032.jpg   1.4MB JPEG-Bild    15.09.2008 13:39
oder

Code: Alles auswählen

pict00035.jpg   1.4MB JPEG-Bild    15.09.2008 10:29
pict00033.jpg   1.2MB JPEG-Bild    15.09.2008 10:30
pict00032.jpg   1.4MB JPEG-Bild    15.09.2008 10:31
im Script sind irgendwie beide Möglichkeiten gemischt, "date -r $FILE" wäre die eine und "date $TIMESTAMP" die andere (ohne jetzt auf evt. andere Fehler zu achten).
Beware of programmers who carry screwdrivers.

Benutzeravatar
rolfti
Beiträge: 331
Registriert: 09.08.2004 22:29:44
Wohnort: Lugano

Re: Zeitstempel verändern

Beitrag von rolfti » 15.02.2010 10:38:15

Danke @cosmac
Hintergrundgeschichte ist dies hier: http://debianforum.de/forum/viewtopic.php?f=28&t=118224
Doch vermute ich würde das erste (10:20....31) ausreichen.
Am liebsten natürlich alle 300 auf mal :)
Danke

uname
Beiträge: 12505
Registriert: 03.06.2008 09:33:02

Re: Zeitstempel verändern

Beitrag von uname » 15.02.2010 10:53:06

Beim (falschen) Kopieren der Bilder geht die Information wieder verloren.

Vielleicht wäre es sinnvoller das Datum im EXIF-Teil des JPEG-Bildes zu ändern:

http://packages.debian.org/de/lenny/jhead

cosmac
Beiträge: 4579
Registriert: 28.03.2005 22:24:30

Re: Zeitstempel verändern

Beitrag von cosmac » 15.02.2010 11:03:26

wenn ich den Hintergrund richtig verstehe, geht es nicht darum, 60 Sekunden zu addieren. Wenn man die Datei-Zeit einfach gleich der EXIF-Zeit macht, dürfte genau das richtige rauskommen. Das lässt sich auch jederzeit wieder reparieren, falls "falsch" kopiert wurde. Laut http://wiki.ubuntuusers.de/JHead (danke @pluvo :) ) sollte das so gehen:

Code: Alles auswählen

jhead -ft *.jpg
Beware of programmers who carry screwdrivers.

Benutzeravatar
rolfti
Beiträge: 331
Registriert: 09.08.2004 22:29:44
Wohnort: Lugano

Re: Zeitstempel verändern

Beitrag von rolfti » 15.02.2010 11:57:26

Hallo cosmac, leider klappt dies nicht so:

Code: Alles auswählen

 jhead -ft *.jpg
Am liebsten hätte ich diese Version:

Code: Alles auswählen

pict00035.jpg   1.4MB JPEG-Bild    15.09.2008 10:29
pict00033.jpg   1.2MB JPEG-Bild    15.09.2008 10:30
pict00032.jpg   1.4MB JPEG-Bild    15.09.2008 10:31
jede *.jpg Datei erhält eine um 1-Minute aufsteigenden Zeitstempel.
Könntest du mir so was zeigen?
Danke

cosmac
Beiträge: 4579
Registriert: 28.03.2005 22:24:30

Re: Zeitstempel verändern

Beitrag von cosmac » 15.02.2010 12:32:48

na gut, probieren wir es so:

Code: Alles auswählen

#!/bin/sh
cd /home/data/bilder/portovenere/
TIMESTAMP=`date +%s`
TIMESTAMP=$(($TIMESTAMP-86400))

for FILE in `ls`; do
   MOD_DATE=`date -d @$TIMESTAMP +%Y%m%d%H%M`
   echo $MOD_DATE $FILE
   touch -t $MOD_DATE $FILE
   TIMESTAMP=$(($TIMESTAMP+60))
done
einen kleinen Nachteil hatte die Methode: nachdem das Script gelaufen ist, liegen die Zeiten erstmal in der Zunkunft. Das repariert sich zwar in wenigen Stunden von alleine, aber damit in der Zwischenzeit kein Programm darüber stolpert, ziehe ich erstmal noch einen Tag ab und zähle ab gestern hoch (in der Zeile mit 86400).

:!: Das Script hat auch noch einen großen Nachteil: die Dateinamen dürfen keine Leerzeichen enthalten. Deswegen sollte man sowas eigentlich mit "find" statt "ls" machen, aber in deinem Fall geht's wohl nochmal so.
Beware of programmers who carry screwdrivers.

severin
Beiträge: 481
Registriert: 26.04.2005 13:30:43

Re: Zeitstempel verändern

Beitrag von severin » 15.02.2010 12:42:15

cosmac hat geschrieben: :!: Das Script hat auch noch einen großen Nachteil: die Dateinamen dürfen keine Leerzeichen enthalten.
Sollte sich das nicht durch Anführungszeichen erledigen? zum Beispiel

Code: Alles auswählen

touch -t $MOD_DATE "$FILE"

Benutzeravatar
rolfti
Beiträge: 331
Registriert: 09.08.2004 22:29:44
Wohnort: Lugano

Re: Zeitstempel verändern

Beitrag von rolfti » 15.02.2010 12:49:11

:THX: cosmac
Tante Grazie
Vielen Dank

cosmac
Beiträge: 4579
Registriert: 28.03.2005 22:24:30

Re: Zeitstempel verändern

Beitrag von cosmac » 15.02.2010 12:53:17

severin hat geschrieben:
cosmac hat geschrieben: :!: Das Script hat auch noch einen großen Nachteil: die Dateinamen dürfen keine Leerzeichen enthalten.
Sollte sich das nicht durch Anführungszeichen erledigen? zum Beispiel

Code: Alles auswählen

touch -t $MOD_DATE "$FILE"
an der Stelle geht das schon, aber in der for-Anweisung wird $FILE schon mit "halben" Dateinamen gefüllt.
Beware of programmers who carry screwdrivers.

severin
Beiträge: 481
Registriert: 26.04.2005 13:30:43

Re: Zeitstempel verändern (gelöst)

Beitrag von severin » 15.02.2010 14:05:21

Stimmt, dann muss wohl doch "find" ran

Antworten