#!/bin/bash DIR=~/Documents/photos/main/unsorted target=$DIR cd "$DIR" for file in *.JPG do echo "processing file $file" year=$(stat $file | grep -oP "(?<=(Modify:\s)).*?\d{4}") month=$(stat $file | stat $file | grep -oP "(?<=(Modify:\s)).*?\d{4}-\d{2}") if [ ! -d "$target/$year" ]; then mkdir "$target/$year" echo "starting new year: $year" fi if [ ! -d "$target/$year/$month" ]; then mkdir "$target/$year/$month" echo "starting month folder: $month" fi echo "moving file $file" mv "$file" "$target/$year/$month" done