Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Durchsuche den Ordner nach unterstützten Bilddateiformaten und Videodateiformaten
- find "./" -type f \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' -o -iname '*.gif' -o -iname '*.mp4' \) | while read -r file; do
- if [[ "$file" =~ \.jpg$ || "$file" =~ \.jpeg$ || "$file" =~ \.png$ || "$file" =~ \.gif$ ]]; then
- # Extrahiere das Aufnahmedatum aus den EXIF-Daten für Bilder
- capture_date=$(exiftool -d "%Y%m%d%H%M%S" -DateTimeOriginal -s -s -s "$file" 2>/dev/null)
- elif [[ "$file" =~ \.mp4$ ]]; then
- # Extrahiere das Erstellungsdatum aus den EXIF-Daten für Videos
- capture_date=$(exiftool -d "%Y%m%d%H%M%S" -CreateDate -s -s -s "$file" 2>/dev/null)
- fi
- # Überprüfe, ob das Datum erfolgreich extrahiert wurde
- if [ -n "$capture_date" ]; then
- # Überprüfe, ob das Änderungsdatum bereits dem extrahierten Datum entspricht
- current_date=$(stat -c %y "$file" | cut -d ' ' -f1 | tr -d '-')
- if [ "$current_date" != "${capture_date:0:8}" ]; then
- # Setze das Änderungsdatum mit touch
- touch -d "${capture_date:0:4}-${capture_date:4:2}-${capture_date:6:2} ${capture_date:8:2}:${capture_date:10:2}:${capture_date:12:2}" "$file"
- echo "Änderungsdatum von $file erfolgreich auf $capture_date gesetzt."
- else
- echo "Änderungsdatum entspricht bereits dem extrahierten Datum. Überspringe."
- fi
- else
- echo "EXIF-Daten für Datum nicht gefunden: $file"
- fi
- echo "-------------------"
- done
- for file in IMG*.jpg IMG*.jpeg VID*.mp4; do
- # Extrahiere das Datum aus dem Dateinamen
- date_str=$file
- # Wenn kein Datum gefunden wird, überspringe die Datei
- if [ -z "$date_str" ]; then
- echo "Kein Datum im Dateinamen gefunden: $file"
- continue
- fi
- # Erstelle separate Variablen für Datum und Uhrzeit
- date_part=${date_str:4:8}
- time_part=${date_str:13:6}
- echo "Originaler Dateiname: $file"
- echo "Extrahiertes Datum: $date_str"
- echo "Datumteil: $date_part"
- echo "Zeitteil: $time_part"
- # Überprüfe, ob das Datum im erwarteten Format ist
- if [[ $time_part =~ ^[0-9]+$ ]]; then
- # Überprüfe, ob das Uhrzeitteil ein negatives Vorzeichen hat
- formatted_date="${date_part:0:4}-${date_part:4:2}-${date_part:6:2} ${time_part:0:2}:${time_part:2:2}:${time_part:4:2}"
- else
- echo "ungültige uhrzeit"
- hours=0
- minutes=0
- seconds=0
- formatted_date="${date_part:0:4}-${date_part:4:2}-${date_part:6:2} ${hours}:${minutes}:${seconds}"
- fi
- echo "Formatiertes Datum: $formatted_date"
- # Überprüfe, ob die Datumsumwandlung erfolgreich war
- if [ -n "${formatted_date}" ]; then
- # Überprüfe, ob das Änderungsdatum bereits dem extrahierten Datum entspricht
- current_date=$(stat -c %y "$file" | cut -d ' ' -f1 | tr -d '-')
- echo "Datei Datum: $current_date"
- if [ "$current_date" != "$date_part" ]; then
- # Setze das Änderungsdatum mit touch
- touch -d "${formatted_date}" "$file"
- echo "Änderungsdatum von $file erfolgreich gesetzt."
- else
- echo "Änderungsdatum entspricht bereits dem extrahierten Datum. Überspringe."
- fi
- else
- echo "Ungültiges Datumsformat für Datei: $file"
- fi
- echo "-------------------"
- done
- for file in Screenshot_*.webp; do
- # Extrahiere das Datum aus dem Dateinamen
- date_str=$(echo "$file" | sed 's/Screenshot_\([0-9]\{8\}-[0-9]\{6\}\)\.webp/\1/')
- # Erstelle separate Variablen für Datum und Uhrzeit
- date_part=${date_str:0:8}
- time_part=${date_str:9}
- echo "Originaler Dateiname: $file"
- echo "Extrahiertes Datum: $date_str"
- echo "Datumteil: $date_part"
- formatted_date="${date_part:0:4}-${date_part:4:2}-${date_part:6:2} ${time_part:0:2}:${time_part:2:2}:${time_part:4:2}"
- echo "Formatiertes Datum: $formatted_date"
- # Überprüfe, ob die Datumsumwandlung erfolgreich war
- if [ -n "${formatted_date}" ]; then
- # Setze das Änderungsdatum mit touch
- touch -d "${formatted_date}" "$file"
- echo "Änderungsdatum von $file erfolgreich gesetzt."
- else
- echo "Ungültiges Datumsformat für Datei: $file"
- fi
- echo "-------------------"
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement