Un apunte rápido para Lii que me pidió un método rápido para renombrar múltiples ficheros usando la consola de comandos de GNU/Linux. Aunque existen varios programas (rename, mmv, etcétera) yo me quedo con MMV entre otras cosas por su soporte de patrones (wildcards).
La sintaxis inicial, es muy sencilla,supongamos que tenemos una cámara de fotos:
ls dcim_001.jpg dcim_002.jpg dcim_003.jpg dcim_004.jpg
Y queremos ponerlo en un formato más "humano". Todas las fotos están hechas hoy. Por lo que vamos a poner un patrón en el MMV para renombrar todas las fotos:
mmv "dcim_*.jpg" "2006-09-15.#1.jpg" ls 2006-09-15.001.jpg 2006-09-15.002.jpg 2006-09-15.003.jpg 2006-09-15.004.jpg
Básicamente todo lo que haya entre dcim_
y .jpg
(que en el ejemplo son la secuencia: 001, 002, 003, etcétera) se guarda en el primer *
y se muestra
con #1
. Si hubiera dos *
el segundo se mostraría con #2
y así.
El comando tiene algunas reglas pero básicamente hay que tener en cuenta lo anteriormente dicho y que los dos parámetros deben ir entrecomillados ("buscar viejo nombre" "reemplazar por nuevo nombre").
Otro ejemplo (con cambio de extensión incluido):
:::bash ls (Ibiza)-001.jpeg (Ibiza)-002.jpeg (BCN)-001.jpeg (BCN)-002.jpg mmv "(*)-*.jpeg" "[#1] 2006-09-15 #2.jpg" ls -l [Ibiza] 2006-09-15 001.jpg [Ibiza] 2006-09-15 002.jpg [BCN] 2006-09-15 001.jpg [BCN] 2006-09-15 002.jpg
Comentarios