+deduplicate() {
+ find "$@" -type f -print | while read file ; do
+ echo $(md5 -q "$file") "$file"
+ done | sort | while read hash file ; do
+ ppath=$(dirname "$pfile")
+ path=$(dirname "$file")
+ if [ "$phash" = "$hash" -a "$ppath" = "$path" ]; then
+ pname=$(basename "$pfile")
+ name=$(basename "$file")
+ cmp -s "$pfile" "$file" && (
+ rm "$file"
+ cd "$path" && ln -s "$pname" "$name" && echo link for "$file" created
+ )
+ fi
+ phash="$hash"
+ pfile="$file"
+ done
+}
+