(gelöst) Datum + Uhrzeit von Dateien ändern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

(gelöst) Datum + Uhrzeit von Dateien ändern

Beitrag von Huck Fin » 12.01.2020 12:53:37

Hi,
mein NAS hat ständig die falsche Uhrzeit / Datum.
Will es aber nicht weg schmeissen...
Ich speichere dort meine Webcam.
Ich habe Ordner mit Fotos und Ordner mit Videos
Im Dateinamen ist das Datum / Uhrzeit der Webcam
Das Ganze sieht so aus

Code: Alles auswählen

./20200111/images/A20011116493810.jpg
./20200111/images/A20011115573011.jpg
./20200111/images/A20011115561712.jpg
Ich wollte die Dateinamen dazu verwenden mit Touch das Datum zu ändern.
Leider ist da der Jahreswechsel, der mir das etwas erschwert. (2019 2020)
Da kenne ich die Parameter nicht
Mein Ansatz war

Code: Alles auswählen

#!/bin/bash
rm Bilder.txt
find . -print |grep -i jpg >Bilder.txt
x=19
while read line
do
echo $line
a=${line:x:6}${line:x+8:6}
echo $a
#echo $line ${line:19:8}
#touch -t ${line:3:8} $line
touch -t $a $line
done <Bilder.txt
Ergebniss:

Code: Alles auswählen

./20191214/images/A19121414404710.jpg
191214404710
touch: Ungültiges Datumsformat „191214404710“
19=Jahr
12=Monat
14=Tag
Ich weis jetzt nicht, ob das mit dem Jahr so richtig ist ?

Code: Alles auswählen

Beispiel:
touch -t 10261230 beispiel.txt
-> die Datei beispiel.txt hat jetzt das Datum 26.10.13 und die Zeit 12:30.
Jemand einen Vorschlag, wie es richtig lauten muss ?
Zuletzt geändert von Huck Fin am 12.01.2020 13:26:39, insgesamt 4-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 9225
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Datum + Uhrzeit von Dateien ändern

Beitrag von Meillo » 12.01.2020 13:14:32

Manpage touch(1) hat geschrieben: -t STAMP
use [[CC]YY]MMDDhhmm[.ss] instead of current time
Wenn du 8 Zeichen angibst, dann ist es: MMDDhhmm.

Wenn du 10 Zeichen angibst, dann ist es: YYMMDDhhmm.

Wenn du 12 Zeichen angibst, dann ist es: YYYYMMDDhhmm.

Sekunden muss man jeweils mit Punkt anfuegen.

Verwende also beispielsweise fuer die momentane Zeit:

Code: Alles auswählen

touch -t 202001121312


Btw: Wenn die Zeit auf deiner Maschine abweicht, solltest du vielleicht mal ueber einen Time-Daemon (Debianntp) nachenken. ;-)
Use ed once in a while!

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Datum + Uhrzeit von Dateien ändern

Beitrag von Huck Fin » 12.01.2020 13:22:34

Danke
Habe es hin bekommen

Code: Alles auswählen

#!/bin/bash
FILE=Bilder.txt
rm $FILE
find . -print |grep -i jpg >$FILE
# Startposition Filename
x=19
while read line
do
echo $line
a=${line:x:6}${line:x+6:4}
# 20 voranstellen für 2019 + 2020
echo 20$a
touch -t 20$a $line
done <$FILE

Antworten