Nivel: | basico |
Sistema: | linux |
Arquitectura: | todas |
Distribución: | todas |
Sección: | utilitarios |
Función: | uso |
Supongamos que tenemos 60 archivos con nombres "ficheroXXX.JPEG" y queremos cambiarles el nombre a todos para que queden "ficheroXXX.jpg" (XXX quiere decir tres dígitos cualquiera; cualquier otro significado de XXX será pura coincidencia :-) Se puede escribir un comando shell que busque todos los archivos y les cambie el nombre uno a uno. Pero más fácil aún es usar el programa mmv que viene en el paquete mmv de Debian. El comando para cambiar el nombre de los archivos sería:
mmv "*.JPEG" "#1.jpg" |
El comando viene seguido por una plantilla para los nombres originales y otra para los nuevos nombres que serán usados. En la plantilla de los nombres originales se pueden usar los meta-caracteres *, ?, [, ] con los mismos significados que tienen en la shell; dentro de [ ] se pueden usar también - y ^. En la segunda plantilla #1 será substituido por el valor de la primera expresión regular en la primera plantilla, en este caso el nombre del fichero sin extensión.
El punto y coma también tiene un significado especial en la plantilla de origen; representa cualquier subdirectorio. Por ejemplo, el comando:
mmv ";*.htm" "#1#2.html" |
Cambiará la terminación .htm por .html en todos los ficheros que existan con esa terminación en el directorio actual y en todos sus subdirectorios. El #1 en la plantilla de destino será substituido por el directorio al que corresponda el punto y coma (no hace falta poner barras / porque el nombre del directorio ya las tiene). En lugar de #2 entrará la segunda expresión regular, que en este caso es todo lo que venga después del nombre del directorio y antes de la terminación .html.
El superusuario podría también modificar el nombre de todos los ficheros con extensión .htm en el sistema, con el simple comando:
mmv "/;*.htm" "#1#2.html" |
El paquete mmv viene también con los programas mcp, mln y mad que permiten hacer copias de varios ficheros, hacer enlaces de varios ficheros (para que sean enlaces simbólicos se usa la opción -s) o colocar el contenido de varios ficheros al final de otros. Por ejemplo, si queremos hacer copias de seguridad de todas las páginas HTML en el directorio actual y en sus directorios, usamos:
mcp ";*.html" "#1#2.html-backup" |
Por cada fichero terminado en .html, tendremos en el mismo directorio un fichero terminado en .html-backup que es una copia idéntica.
© 2001, La Espiral.