-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathremove_dublicated_photos.sh
More file actions
executable file
·49 lines (36 loc) · 970 Bytes
/
remove_dublicated_photos.sh
File metadata and controls
executable file
·49 lines (36 loc) · 970 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env bash
if [ $# -ne 1 ]; then
echo "Please provide directory location. Exiting."
exit 1
fi
LOCATION="$1"
ORIG_IFS="$IFS"
IFS=$'\n'
pushd "$LOCATION"
for file in `ls -1 *\(*\).*`; do # pattern example "IMG_123 (2).jpeg"
basename="${file% *}"
extension="${file##*.}"
maxSize="9223372036854775807"
bestFile=""
echo "Duplicates for $basename:"
for similarFile in `ls -1 $basename*`; do
size=`stat -f%z "$similarFile"`
echo "$similarFile, size - $size"
if [[ $size -lt $maxSize ]]; then
echo "Store new better size - $size for file $similarFile"
maxSize=$size
bestFile="$similarFile"
fi
done
echo "The best file is $bestFile with size $maxSize"
for similarFile in `ls -1 $basename*`; do
if [ "$similarFile" != "$bestFile" ]; then
echo "Removing bigger copy $similarFile"
rm "$similarFile"
fi
done
echo "Rename $bestFile to $basename.$extension"
mv "$bestFile" "$basename.$extension"
done
popd
IFS="$ORIG_IFS"