Может быть так:
find. -name "red_*" -exec bash -c 'echo mv "{}" "$(echo "{}" | sed "s%/red_%/blue_%" )"' \;
Это просто печатает команды. Хорошо бы проверить, действительно ли это сработает. Если вы это подтвердили, удалите echo
перед mv
.
Вы можете сделать это с помощью команды переименования:
find. -type f -name "red*" -exec rename s/red/blue/g "{}" +;
Таким образом, он найдет файлы с именем, начинающимся с red
, а затем поместит их все в одну команду, например
rename s/red/blue/g red_first red_second
Он будет искать файлы во всех каталогах ниже текущего каталога.