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