Вы можете сделать небольшой сценарий bash для этого.
Создайте файл с именем recursive_replace_filename
с таким содержанием:
#!/bin/bash
if test $# -lt 2; then
echo "usage: `basename $0` <to_replace> <replace_value>"
fi
for file in `find . -name "*$1*" -type f`; do
mv "'$file'" "${file/'$1'/'$2'}"
done
Сделать исполняемый файл прогоном:
$ chmod +x recursive_replace_filename
$ ./recursive_replace_filename 123_ ""
Имейте в виду, что этот сценарий может быть опасным, убедитесь, что вы знаете, что он делает, в какой папке вы его выполняете и с какими аргументами. В этом случае все файлы в текущей папке, рекурсивно содержащие 123_
, будут переименованы.