Что если вы хотите применить задачу замены рекурсивно ? Как бы вы это сделали?
Ну, я только что нашел ответ сам. Не самое элегантное решение (пытается переименовать также файлы, которые не соответствуют условию), но работает. (Кстати, в моем случае мне нужно было переименовать файлы с «% 20», а не с подчеркиванием)
#!/bin/bash
find . -type d | while read N
do
(
cd "$N"
if test "$?" = "0"
then
for file in *; do mv "$file" ${file// /%20}; done
fi
)
done