Guión para cambiar un carácter (o varios) en el nombre de ficheros

Como podéis comprobar todos aquellos que tengáis instalado ownCloud, existe una serie de caracteres que os provocan el error : “Files contains invalid characters…” cuando sincronizáis con el cliente de escritorio.

Si optáis por la solución cómoda como es cambiar el nombre, quitando el carácter problemático por otro (‘_’ es una buena opción), en GNU/Linux, con esta orden ejecutada desde el directorio que sincronizáis, sobra:

find . -type f -name ‘*:*’ | while read fich; do echo “Moving $fich a ${fich//[:]/_}”; mv “$fich” “${fich//[:]/_}”; done

Con ella cambio el carácter ‘:’ por ‘_’. Si queréis generalizar la orden para más caracteres, solo tenéis que modificar la expresión “${fich//[:]/_}” en los 2 sitios donde aparece y también el patrón ‘*:*’.

¡Espero que os sea útil!

PD: la orden echo “Moving $fich a ${fich//[:]/_}” es solo informativa; puede no estar.

Actualización:

PD2: Lo que aparece en negrita es una actualización. Se me olvidó indicar el patrón que busca ficheros cuyo nombre contiene el carácter deseado.