viernes, 25 de julio de 2008

Cambiar nombre de archivos de minusculas a mayusculas

Si deseas cambiar los nombre de los archivos de un directorio que están mayúsculas a minúsculas, prueba este script que acabo de ver en LinuxJournal

Ojo los números de lineas son para referencias.

1 #!/bin/sh
2 # lowerit
3 # convierte todos los nombres de un directorio a minusculas
4 # solo funciona con nombres de archivos planos, no cambia nombres de directorios
5 # preguntara para verificacion antes de sobreescribir un archivo existente
6 for x in `ls`
7 do
8 if [ ! -f $x ]; then
9 continue
10 fi
11 lc=`echo $x | tr '[A-Z]' '[a-z]'`
12 if [ $lc != $x ]; then
13 mv -i $x $lc
14 fi
15 done


En la linea 6 empieza un bucle (termina en la linea 15). El comando ls retorna una lista de los nombres de archivos los cuales serán asignados secuencialmente a la variable x. La prueba if (lineas 8 a 10) revisa si los nombres de los archivos refieren a archivos planos, si no son archivos planos saldrá del bucle.

Si la linea 11 se ejecuta es por que es un archivo ordinario. Usando tr convertimos el nombre del archivo de mayúsculas a minúsculas y asignamos el nuevo nombre a la variable lc. Linea 12 revisa si la nueva versión del nombre en minúscula difiere del nombre original, si así es la linea 13 se ejecuta para cambiar el nombre original al nuevo en minúsculas. La opción -i hace que mv pregunte antes de sobreescribir.

Script escrito por Phil Hughes.

Version Original.

No hay comentarios: