#!/bin/bash if [ "$(pwd)" == "$HOME" ]; then echo "Current directory should not be HOME" exit 1 fi mapfile -t files < <(find . -type f -not -name 'urls.txt' -not -name 'desktop.ini') for filepath in "${files[@]}"; do filename=$(basename "$filepath") filename_dir=$(dirname "$filepath") filename_md5sum=$(md5sum "$filepath" | awk '{print $1}') filename_extension="${filename##*.}" new_filename="$filename_md5sum.$filename_extension" if [ "$filename" == "$new_filename" ]; then continue fi mv "$filepath" "$filename_dir/$new_filename" done