Массовое переименование файлов в транслит
Всегда считал что файлы лучше всего хранить с именами написаными на транслите. Вот решил научить и остальных этому в организации. Но вот не задача, люди не очень охотно следовали моим советам, а самому сидеть все переименовывать знаете ли мягко говоря не совсем удобно. Вот мне на выручку и попался скрипт выполняющий все эти функции за меня. Скрипт запускал на своем сервере под Ubuntu 10.04, со всеми задачами он справлялся легко )), а для полной автоматизации его можно загнать в крон, по времени лучше конечно на ночь, тогда то уж точно в конторе никто не будет работать с файлами на сервере.
Сразу скажу скрипт не мой, но вот автора никак не могу найти чтоб дать ссылочку.
#!/bin/bashСкрипт работает очень просто. Помещаете его в каталог в котором хотите произвести переименование файлов и запускаете. Переименовывает он все файлы и каталоги рекурсивно.
shopt -s nullglob
for NAME in * ; do
TRS=`echo $NAME | sed "y/абвгдезийклмнопрстуфхцы/abvgdezijklmnoprstufxcy/"`
TRS=`echo $TRS | sed "y/АБВГДЕЗИЙКЛМНОПРСТУФХЦЫ/ABVGDEZIJKLMNOPRSTUFXCY/"`
TRS=${TRS//ч/ch};
TRS=${TRS//Ч/CH} TRS=${TRS//ш/sh};
TRS=${TRS//Ш/SH} TRS=${TRS//ё/jo};
TRS=${TRS//Ё/JO} TRS=${TRS//ж/zh};
TRS=${TRS//Ж/ZH} TRS=${TRS//щ/sh\'};
TRS=${TRS///SH\'} TRS=${TRS//э/je};
TRS=${TRS//Э/JE} TRS=${TRS//ю/ju};
TRS=${TRS//Ю/JU} TRS=${TRS//я/ja};
TRS=${TRS//Я/JA} TRS=${TRS//ъ/\`};
TRS=${TRS//ъ\`} TRS=${TRS//ь/\'};
TRS=${TRS//Ь/\'}
if [[ `file -b "$NAME"` == directory ]]; then
mv -v "$NAME" "$TRS"
cd "$TRS"
"$0"
cd ..
else
mv -v "$NAME" "$TRS"
fi
done
Сразу скажу скрипт не мой, но вот автора никак не могу найти чтоб дать ссылочку.
Комментарии
Отправить комментарий