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.
Posts relacionados:



29 de Octubre de 2009 a las 15:37
Información Bitacoras.com…
Valora en Bitacoras.com: 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 procedimi….