#!/bin/bash NOEXIF='no_exif' MD5MATCH='md5_collision' DUPLICATE='duplicate' md5compare() { file1md5=$(md5sum "$1" | awk '{print $1}') file2md5=$(md5sum "$2" | awk '{print $1}') if [ "$file1md5" == "$file2md5" ]; then echo "md5 clash" mv $2 $MD5MATCH/$2 else return 1 fi } if [ ! -d $MD5MATCH ] then mkdir $MD5MATCH fi if [ ! -d $NOEXIF ] then mkdir $NOEXIF fi if [ ! -d $DUPLICATE ] then mkdir $DUPLICATE fi for file in *.JPG *.jpeg *.JPEG; do mv "$file" "$(basename "$file" .JPG).jpg" done #for f in *.jpg *.jpeg *.JPG *.png for f in *.jpg do #if ext = jpeg JPG jpg name = jpg folder="$(exiftool -d "%Y-%m" -CreateDate "$f" | awk '{print $4}')" filename="$(exiftool -d "%Y-%m-%d_%H-%M-%S" -CreateDate "$f" | awk '{print $4".jpg"}')" echo $f if [[ -n $folder ]] then if [[ ! -d $folder ]]; then echo "new date folder" mkdir $folder fi if [[ ! -f $folder/$filename ]] then echo $folder/$filename mv "$f" "$folder/$filename" else if ! md5compare "$folder/$filename" "$f"; then echo $DUPLICATE/$folder/$filename mv "$f" "$DUPLICATE/$f" fi fi else echo "move to noexif" mv "$f" "$NOEXIF/$f" fi done echo "finished"