Я пытаюсь написать bash-скрипт, который будет рекурсивно искать каталог, находить файлы с одинаковыми именами, но разными регистрами, и переименовывать их.
Например, каталог, содержащий file.txt и File.txt, файл file.txt останется, а File.txt будет File.0 (или любым числом, если сохраняются обе копии.)
Вот код, который у меня есть, хотя я вижу проблему. Строка для поиска дубликатов имен изменяет регистр в путях к файлам, делая их недействительными. Я не могу придумать способ обнаружить дубликаты, не удаляя регистр в путях.
#!/bin/bash
#Scan for duplicates
find $1 -name "*"| tr 'A-Z' 'a-z' | sort | uniq -d > ~/case.tmp
#Count changes
i=0
#Make changes
for line in `cat ~/case.tmp`
do mv $line $line.$i
let i++
done
#Print Results
echo "$i file(s) renamed".
Спасибо за помощь.