Может быть, у кого-то есть скрипт инструмента (perl или скрипт оболочки), который переименовывает имена файлов или имена каталогов?
Например
Инструмент должен прочитать из файла следующее:
more file
/var Local exportlocal
/etc data Data
Первое поле $ 1 - имя каталога для поиска в этом каталоге
Второе поле - имя файла / каталога, в котором нужно искать
Третье поле - имя нового файла / каталога, который нужно переименовать
Реальный пример (до запуска инструмента)
/var/tmp/Local
Реальный пример (после запуска инструмента)
/var/tmp/exportlocal
Предполагая, что файл разделен пробелами (табуляции и / или пробелы между полями и новой строкой, заканчивающейся каждой записью) и что имена файлов и каталогов не содержат этих символов:
#!/bin/sh
while read -r branch oldname newname
do
find "$branch" -depth -name "$oldname" -exec sh -c 'mv "$1" "${1%/*}/$2"' _ {} "$newname" \;
done < file-with-names
Редактировать:
Изменить find
для вывода сообщения для каждого переименованного файла:
find "$branch" -depth -name "$oldname" -exec sh -c 'mv "$1" "${1%/*}/$2"; echo "$1 was renamed to $2 under $3"' _ {} "$newname" "$branch" \;