Google
Web dns.bdat.net

Script que renombra todos los ficheros cuyo nombre sea de la forma texto.html y en otro que sea de la forma texto.xhml.

Este script sólo cambia el nombre a los ficheros del directorio activo

for fichero in *.html
do
        nombre=$(bsasename $fichero .html)
        mv $fichero $nombre.xhtml
done
            

Para cambiarlo en toda la rama de directorios:

for fichero in $(find . -name "*.html" -type f)
do
        dir=$(dirname)
        nombre=$(bsasename $fichero .html)
        mv $fichero $dir/$nombre.xhtml
done
            

Una forma de procesar todos los ficheros de una rama del árbol de directorios es 'for fichero in $(find . -name "*.html" -type f)', donde "fichero" va tomando la ruta relativa de cada uno de los ficheros encontrados.

Este ejemplo puede servir como base para un script que realice ciertas copias de seguridad.