Programm das Aufnahmedatum ausliest und Datei nach diesem benennt?
Moin, gibt es ein Linux Programm, welches aus Dateien das "Erstelldatum" ausliest und die Datei nach diesem bennent?
Also Datei heisst vorher 123.mov
Programm liest Erstellungsdatum 03.04.2024 4:56 Uhr aus
Datei wird in 03042024_0456.mov umbenannt.
Danke
2 Antworten
Diese Kommandozeilen-Anweisung benennt alle *.mov-Dateien im aktuellen Verzeichnis entsprechend deiner Vorgabe um:
for f in *.mov; do mv "$f" "$(date -r "$f" +%d%m%Y_%H%M.mov)"; done
Achtung: Wenn es mehrere Dateien gibt, die in derselben Minute erstellt wurden, dann würden die denselben Namen bekommen und sich daher gegenseitig überschreiben.
Einfach noch -u hinzufügen, dann gibt 'date' die Zeit als UTC zurück:
for f in *.MOV; do mv "$f" "$(date -u -r "$f" +%d%m%Y_%H%M.MOV)"; done
Ich liebe die Antwort von ultrarunner.
Falls du es in Python machen möchtest:
import os
from datetime import datetime
import re
# Datei festlegen
file = '123.mov'
# Suche nach der Dateierweiterung
regex = r"\..*$"
match = re.search(regex, file)
# Dateierweiterung speichern
extension = match.group(0)
# Das Erstellungsdatum wird über os.stat in der Epochenzeit (glaube ich zumindest) auf Index 9 gespeichert. Das musst du noch konvertieren.
creation_date = os.stat(file)
converted_date = datetime.fromtimestamp(creation_date[9]).date()
# Umbenennen der Datei mit der Erweiterung
os.rename(file, f"{converted_date}{extension}")
Ist nicht perfekt - aber ein Ansatz.
Benötigst du es für mehrere Dateien, Schleife einbauen.
Ein paar Validierungen wären noch fällig.
Falls du kein Programmierer bist, gerne melden.
Boa danke. Bist echt ein pro! MOV musste großgeschrieben werden. Hat alles geklappt. Hammer
Noch eine Frage. Kann ich dem ganzen +2 Stunden hinzufügen, da die Aufnahmezeit mit MEZ ist und im PC CEST. Danke Dir