givefilesextensions (513B)
1 #!/bin/sh 2 3 if [ "$#" -ne 1 ]; then 4 echo "Usage: $0 /path/to/directory" 5 exit 1 6 fi 7 8 target_dir="$1" 9 10 if [ ! -d "$target_dir" ]; then 11 echo "Error: '$target_dir' is not a valid directory." 12 exit 1 13 fi 14 15 for file in "$target_dir"/*; do 16 [ -d "$file" ] && continue 17 mime_type=$(file --mime-type -b "$file") 18 extension=$(echo "$mime_type" | awk -F'/' '{print $2}') 19 20 if [[ ! "$file" == *".$extension" && -n "$extension" ]]; then 21 new_file="$file.$extension" 22 echo "$file -> $new_file" 23 mv "$file" "$new_file" 24 fi 25 done