Lo descubrí
find . -name "*.andnav" -exec rename -v 's/\.andnav$/\.tile/i' {} \;
./0/0.png.andnav renamed as ./0/0.png.tile
./0/1.png.andnav renamed as ./0/1.png.tile
./1/0.png.andnav renamed as ./1/0.png.tile
./1/1.png.andnav renamed as ./1/1.png.tile
por supuesto, elimine la -v cuando realmente lo haga, o perderá tiempo mostrando todos los archivos
Con zsh:
autoload zmv
zmv -n '(**/)(*).andnav' '$1$2.tile'
Elimina el -n para realizar realmente el cambio de nombre.
Algo como:
find . -name '*.andnav' -exec sh -c 'mv "$0" "${0%.andnav}.tile"' {} \;
Explicación
Lo anterior comienza a recorrer el árbol de directorios comenzando en el directorio de trabajo actual (. ). Cada vez que un nombre de archivo coincide con el patrón *.andnav (por ejemplo, foo.andnav ) se ejecuta el siguiente comando:
sh -c 'mv "$0" "${0%.andnav}.tile"' foo.andnav
Donde $0 es foo.andnav y ${0%.andnav}.tile reemplaza el .andnav sufijo con .tile así que básicamente:
mv foo.andnav foo.tile