Renombrar múltiples ficheros en GNU/Linux

Los que utilizan la shell de GNU/Linux saben que con el comando mv no es posible renombrar varios ficheros o directorios a la vez, con lo que hay que hacer algún tipo de bucle for/while o similar para poder hacer el procedimiento deseado, no obstante se puede realizar de una manera más sencilla utilizando el comando rename.

1) Quiero renombrar todos los ficheros con extensión html a php utilizando el comando mv

$ ls
1.html 2.html 3.html
$ mv *.html ????? (no se puede realizar!)

2) Quiero renombrar todos los ficheros con extensión html a php utilizando un bucle for y mv

$ ls
1.html 2.html 3.html
$ for h in *.html; do mv $h `echo $h | sed 's/\.html/.php/'`; done
$ ls
1.php 2.php 3.php

3) Quiero renombrar todos los ficheros con extensión html a php utilizando el comando rename

$ ls
1.html 2.html 3.html
$ rename 's/\.html$/.php/' *.html
$ ls
1.php 2.php 3.php

Como se puede observar, con el comando rename la operación es mucho más sencilla y clara que utilizar for junto con mv, logrando utilizar una expresión regular para ello.

El comando rename permite realizar expresiones regulares, así que el abanico de posibilidades es muy amplio para realizar otro tipo de tareas relacionadas.

2 Replies to “Renombrar múltiples ficheros en GNU/Linux”

Deja un comentario

Tu dirección de correo electrónico no será publicada.