переименование каталогов на основе шаблона

В настоящее время я пытаюсь переименовать все каталоги, содержащие 123, в 321.
Например, если у меня есть каталог с именем test123test, я хотел бы переименовать его в test321test.

На данный момент у меня есть что-то вроде:
find . -depth -name *123* -exec mv {} вот где у меня проблема\;
Потому что я не не знаю, как я смогу заменить имя папки на исходное.

Если у вас есть какие-либо идеи о том, как действовать дальше, не стесняйтесь вносить свой вклад.


person BenFradet    schedule 27.03.2013    source источник


Ответы (1)


Попробуйте с циклом for:

for dir in `find . -type d -depth X -name '*123*'` ; do
    mv "$dir" "${dir/123/321}"
done

Примечание. вам нужно отредактировать X выше. И это может привести к сбою, если есть такие пути, как «./dir123/dir123/»

person Zsolt Botykai    schedule 27.03.2013
comment
Большое спасибо, это сработало после того, как я удалил предикат глубины. - person BenFradet; 27.03.2013