for f in {1..9}; do test -e $f_ && mv ${f}_ $f ; done
for f in {a..d}; do test -e $f_ && mv ${f}_ $f ; done
Тест можно было бы сделать более точным, чтобы проверить, является ли $ f_ файлом *, на test -f $f_
, и я мог бы предоставить тест, чтобы убедиться, что $ f существует и является каталогом:
for f in {1..9} {a..d}
do
test -f $f_ && test -d $f && mv ${f}_ $f
done
Если директории $ f нет, указанная выше команда переименует $ f_ в $ f, а если $ f существует и является файлом, перезаписать.