Для начала нужно определить текущую кодировку имён файлов, для этого понадобится утилита enca. Вот пример:
$ ls -1
????1.txt
????2.jpg
+BDUESQRR-_+BD4ENAQ4BD0-_+BEQEMAQ5BDs-.bin
Просмотреть имена файлов и их кодировку:
$ ls -1 | while read i; do echo "$i: $(echo $i | enca -c): $(echo $i | enca -i)"; done
����1.txt: файл1.txt: CP1251
����2.jpg: файл2.jpg: KOI8-U
+BDUESQRR-_+BD4ENAQ4BD0-_+BEQEMAQ5BDs-.bin: ещё_один_файл.bin: UTF-7
Так можно рекурсивно сменить кодировку имён в текущей директории:
$ find . | while read i; do convmv --notest -f $(echo $i | enca -i) -t utf8 ./$i; done