Milton Mazzarri
Milton Mazzarri
3 min read

Categories

Tags

Si ud. es una de esas personas que al igual que yo le gusta ahorrar tiempo en esas tareas cotidianas que a veces se convierten en algo aburridas por lo repetitivas que suelen ser, seguramente este breve artículo acerca del uso de rename le va a interesar, puedo asegurarle que le facilitará la vida, claro, siempre y cuando ud. regularmente modifique nombres de ficheros. Seguramente se ha encontrado alguna vez que el formato de nombres de los ficheros de audio (p.ej. mp3) no le parece el adecuado, en estas situaciones lo más recomendable es recurrir a rename, ya que éste último le automátizara el renombrado de los ficheros al indicarle un parámetro, el cual será una expresión regular de Perl. Algunos ejemplos de esto son los siguientes:

milton@omega ~ $ ls
01 - Main Theme From Star Wars & Leia's Nightmare.mp3
milton@omega ~ $ rename 's/\ -\ /-/' *.mp3

Obtenemos como resultado lo siguiente:

milton@omega ~ $ ls
01-Main Theme From Star Wars & Leia's Nightmare.mp3

Como pudo haberse dado cuenta el comando rename 's/\ -\ /-/' *.mp3 simplemente sustituyó la cadena “ - “ por ‘-‘, recuerde que los espacios en sistemas GNU/Linux son “carácteres especiales”, por lo tanto, al carácter debe precederle una barra invertida (**), los ficheros que modificará son aquellos que posean la extensión **mp3.

También puede notar que en el nombre del fichero anterior aún existen espacios en blanco, si deseamos convertir dichos espacios en blanco por el carácter ‘_’, simplemente realizamos lo siguiente:

milton@omega ~ $ rename 'y/\ /_/' *.mp3<br></br>
milton@omega ~ $ ls<br></br>
01-Main_Theme_From_Star_Wars_&_Leia's_Nightmare.mp3

Como puede darse cuenta, el comando rename 'y/\ /_/' *.mp3 sustituirá todos los carácteres que representan los espacios en blanco por el carácter ‘-‘ en todos los nombres ficheros con extensión mp3.

Otra posibilidad interesante que tenemos es la de convertir todos los carácteres en mayúsculas a mínusculas y viceversa.

milton@omega ~ $ ls
10_MOS_EISLEY_SPACEPORT.mp3
milton@omega ~ $ rename -v 'y/A-Z/a-z/' *.mp3
10_MOS_EISLEY_SPACEPORT.mp3 renamed as 10_mos_eisley_spaceport.mp3

Como vemos, el cambio es realmente sencillo, al utilizar la opción -v simplemente estamos habilitando la impresión de los nombres de los archivos que se han modificado correctamente, esta opción es bastante útil para percatarnos de los cambios que se han generado.

Este tratamiento también es aplicable para renombrar directorios, recuerde que los directorios en sistemas GNU/Linux son tratados de manera equivalente a los archivos, así que vamos a mostrar un ejemplo para aclarar la situación.

milton@omega ~ $ ls
Shadows of the Empire
Star Wars A New Hope
Star Wars Attack Of The Clones
Star Wars Return of the Jedi
Star Wars The Empire Striks Back
Star Wars The Phantom Menace

Arriba vemos los directorios que representan la mayoría de los álbumes de la colección de Star Wars, por comodidad, regularmente suelo hacer una estructura similar a la siguiente: Music » Artista » Título del Álbum » #Pista-Nombre de la Pista. Por lo que los títulos de los álbumes deben ser especificos, no deben contener el nombre del artista. En mi caso he cambiado los nombres de los directorios de la siguiente manera:

milton@omega ~ $ rename -v 's/Star\ Wars\ //' *
Star Wars A New Hope renamed as A New Hope
Star Wars Attack Of The Clones renamed as Attack Of The Clones
Star Wars Return of the Jedi renamed as Return of the Jedi
Star Wars The Empire Striks Back renamed as The Empire Striks Back
Star Wars The Phantom Menace renamed as The Phantom Menace

En el ejemplo anterior simplemente se ha eliminado la cadena “Star Wars “. Es de suponer que el directorio Shadows of the Empire no será renombrado ya que no cumple con las pautas necesarias.

Es importante aclarar, que éste no es el único método existente para la modificación de los nombres de los ficheros, existen muchos otros, pero desde mi punto de vista, el uso de rename me parece bastante adecuado y fácil de implantar.