photo-renamer/rename.sh

67 lines
1.3 KiB
Bash

#!/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"