I had an issue in Immich where it was sorting pictures by their modified date. The modified dates are random, but the filenames are not. I wanted the album to sort by filename, and to do that I needed to get each filename to have a modified time in the same order. This was my solution (run within the directory in question) :
date=$(date -r $(ls | head -1) +%s); for file in *.jpg; do touch -m -d "@$date" $file; ((date+=1)); done
This bash one-liner does the following:
- Sets a date variable by taking the modified date of the first file in the directory and converting it to epoch time
- Goes through each JPG file in the directory and executes a touch command to set the date of that file to the date variable
- Increments the date variable by 1 before processing the next file
The end result is now the order the files are in by modified date match their filename order.