LINUX.ORG.RU

имена файлов: кодировка


0

0

попали мне в руки нестколько дисков с mp3. не знаю, как их писали, но русские имена файлов там в разных кодировках. времени разбираться не было, поэтому слил на винт как есть. щас сунулся - некоторые диры/файлы с нечитабельными именами. путем подбора вычислил, что к нормальному виду они приводятся командой `iconv -f koi8-r -t cp866'. все бы ничего, но файлов с такими именами слишком много, и переименовывать каждый в отдельности весьма затруднительно. как переименовать их все скопом рекурсивно? в баше я не силен, поэтому, собсно, и обратился. помогите, плз. предполагаю, что это не сложно (одна-две строчки), но не знаю, как именно

★★★

for file in /your/dir/*; do
mv $file `echo $file | iconv -f cp1251 -t cp866`
done

Прокатит для одной диры :)
можешь с find -exec сделать

Pupkin
()
Ответ на: комментарий от Pupkin

for file in ./*; do mv "$file" "`echo $file|iconv -f koi8-r -t cp866`"; done;

пришлось заходить в каждую директорию и выполнять эту строчку. так даже лучше, чем рекурсивно, т.к. нужно было смотреть, в какой оно кодировке, иначе то, что было в нормальной кодировке, стало бы нечитабельным.

спасибо за помощь

friday ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.