Set modification date of all files to the one from its filename XYZ{_,-}YYYYMMDD_... (using Exif or modification time):

for i in *; do echo "$i"; touch -d "$(date -Rd $(echo "$i" | /bin/grep -Po '^[^-_]+[-_]\K20\d\d\d\d\d\d' | sed -E 's/([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/')T$({ identify -format '%[EXIF:DateTimeOriginal]' "$i" | /bin/grep '.*' || stat --printf '%y' "$i"; } | /bin/grep -o '[0-9][0-9]:[0-9][0-9]:[0-9][0-9]' | tail -n1 | /bin/grep '.*' || echo '12:00:00')Z)" "$i"; done

Folgen

@momar are you sorting images? The only files I'm aware of containing timestamps in the filename :D

Melde dich an, um an der Konversation teilzuhaben
Machteburch.social

Magdeburg im Fediverse - Machteburch.social ist eine Mastodon-Instanz für Magdeburg und alle, die Magdeburg mögen, oder sich mit Magdeburg verbunden fühlen.