Como convertir todos los nombres de los archivos a minúsculas
In English  

Cuando descargas archivos de diferentes fuentes, a veces sucede que hay letras mayúsculas y minúsculas de una forma que no es lo que te gusta o lo que necesitas.

Personalmente me gusta tener todos los nombres de los archivos en minúscula, pero termino con algo como:

unArchivo.JPG iNcReIbLe.pNg estoEsUnCamello.Svg iUnDocumentoRaRo.docX

Este comando puede volver todos los nombres de estos archivos minúsculas:

for original in *; do mv $original `echo $original | tr '[:upper:]' '[:lower:]'`; done

Por supuesto que a veces son solo las extensiones las que queremos volver minúsculas, esto puede ser usado con archivos .JPG:

for original in *.JPG; do mv $original `echo $original | tr '[:upper:]' '[:lower:]'`; done

¿Que hacer con los espacios en los nombres de archivo?

Muchos archivos vienen también con espacios. Usualmente yo separo las palabras con un guión medio ( - ), pero soy un programador, me gusta esta forma: este-nombre-de-archivo.txt, y descargo esto: ‘Este nombre de archivo.PNG’

Esto cambia esos espacios a guiones medios:

for original in *; do mv "$original" `echo $original | tr ' ' '-'`; done

En Linux/Unix tenemos “Pipping”, podemos enviar el resultado de un comando al siguiente comando, y luego al siguiente comando: ‘echo’ a ‘tr’ a ‘tr’ de nuevo. Este comando volverá todos las letras minúsculas y reemplazará los espacios con '-'

for original in *; do mv "$original" `echo $original | tr '[:upper:]' '[:lower:]' | tr ' ' '-'`; done

Otra opción es simpremente borrar esos espacios:

for original in *.txt; do mv "$original" `echo $original | tr -d ' '`; done

Hay mucho que se puede hacer con el comando tr, no solo en nombres de archivo sino en textos en general. En este caso en particular lo utilizo para lidiar con los nombres de archivo y que se ajusten a mi gusto.