Considere o uso do comando find (veja man find). Isso passará por todos os subdiretórios e poderá executar um arquivo de comando em cada nome de arquivo usando a opção -exec {}.
Até agora eu tenho:
for file in *\_*
do file_clean="${file//_/ }"
mv --verbose "$file" "$file_clean"
done
No entanto, apenas renomeia arquivos no diretório raiz da pasta. Como faço para renomear os arquivos com underscores para espaços de forma recursiva em todos os arquivos e pastas dentro desse diretório?
Considere o uso do comando find (veja man find). Isso passará por todos os subdiretórios e poderá executar um arquivo de comando em cada nome de arquivo usando a opção -exec {}.