#!/bin/bash
#Конвертация имён файлов и каталогов из заданной кодировки в текущую
if [ "$1" = ""]
then echo "Исходная кодировка не указана! Пожалуйста укажите кодировку, например cp1251 или koi8-r"; exit 1
fi
PWD=$(pwd) #Запоминаем текущий каталог
#Ищем все вложенные каталоги в текущем и отдаём их переменной цикла и
временно заменяем пробелы в названиях на \ для исключения проблем с
восприятием одного имени файла как нескольких.
for i in $(find $PWD -type d -depth | sed 's/ /\\/g')
do
#Возвращяем пробелы в имена файлов и каталогов и запоминаем в переменной dest
dest=$(echo "$i" | sed 's/\\/ /g')
cd "$dest" #Переходим в каталог
#Конвертируем имена содержимого катаога  из заданной кодировки в текущую
for n in *
do
        conv=$(echo "$n" | iconv -c -f "$1")
        mv "$n" "$conv"
done
cd $PWD
done
