LINUX.ORG.RU

рекурсивный обход директорий с переименованием

 ,


0

1

на FTP сервере все каталоги, включая вложенные файлы оказались в кривой кодировке. Был написан небольшой скрипт, для переименования папок и файлов.

#!/bin/bash
nname=$(echo "$1" | iconv -t latin1 | iconv -f cp1251 -t utf-8)
mv "$1" "$nname"

Запускается с помощью

find ./ -maxdepth 1 -exec ~root/cp1251_to_utf8.sh "{}" \;

Но тогда необходимо проваливаться в каждый каталог и запускать скрипт руками.

Можно ли как то сделать чтобы он проходил рекурсивно все подкаталоги?



Последнее исправление: xaizek (всего исправлений: 1)

А зачем ты глубину поиска финду ограничил? Ну и укажи что искать нужно только каталоги

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

Если указываю -maxdepth 3 то все файлы и каталоги перемещаются в корень каталога из которого был запущен скрипт. Переименовать нужно не только файлы но и каталоги, большая вложенность.

evgeni4ik
() автор топика
Ответ на: комментарий от unicorne

Пробовал, в корневом каталоге все переименовывает нормально, но во вложеные папки не идет.

выдает сообщение: ‘find: ‘./Ýß ÍÎÂÎ áóõãàëòåðèÿ’: No such file or directory’

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

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

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