Такие скрипты пишутся "на коленке за 5 минут" включая тестирование
Вот скриптик на перле, хотя используется вызов внешних программ. Можно сделать вообще средствами только перла, но для этого надо модуль конвертации заюзать, который надо ставить дополнительно.
#!/usr/bin/perl
$Dir='1';
opendir(DIR, $Dir) || die "can't opendir $Dir: $!";
@files = grep { /^[^\.]/ && -f "$Dir/$_" } readdir(DIR);
closedir DIR;
foreach my $old (@files) {
$new=`echo -n $old | iconv -f windows-1251 -t koi8-r`;
if ($old ne $new) {
`mv "$Dir/$old" "$Dir/$new"`;
}
}
Скрипт без рекурсии, поэтому вложенные каталоги не обработаются.
Если это нужно - юзать или модуль FileFind перла, или список файлов-каталогов получить системным find'ом.
"No! Try not! Do. Or do not. There is no try." -- Yoda