¿Puede mmv cambiar el nombre de los archivos incrementando un índice?

¿Puede mmv cambiar el nombre de los archivos incrementando un índice?

¿Puede mmv, una utilidad de movimiento masivo, cambiar el nombre de los archivos desde:

  • foo.txt
  • barra.txt
  • baz.txt

a:

  • 1.texto
  • 2.texto
  • 3.texto

La página de manual es intrigante, pero no sigo las instrucciones:

   Rename all *.jpeg files in the current directory to *.jpg:

  mmv '*.jpeg' '#1.jpg'

#1¿Se puede establecer la variable en un número entero que se incrementa? Si bien no dudo que esto sea posible, ¿es igualmente fácil (o difícil) usar simplemente un bash u otro script?

Ignorando el posible problema de sobrescritura 1.txtpor simplicidad. O cópielo en un subdirectorio.

ver también:

https://stackoverflow.com/questions/3211595/

https://stackoverflow.com/questions/880467/

Cambie el nombre de los archivos incrementando un número dentro del nombre del archivo

Respuesta1

No tengo ese programa en mi sistema; de hecho, no recuerdo específicamente haberlo escuchado antes, pero leíesta copia de la página de manual, y parece que el programa no incluye la funcionalidad que deseas. Sin embargo, si desea hacer esto especialmente con mmv, puede intentar esto:

mmv -an "*.txt" bogus.target > /tmp/mmv.list

Le -nindica mmvque no haga ningún movimiento, solo que informe lo que habría hecho si no lo hubiera especificado -n. de hecho, la página de manual ofrece un ejemplo muy similar (pero sin la opción ). Lo uso aquí simplemente para persuadir a que permita que varios archivos de origen colisionen en un solo destino -a. . Esto debería producir un archivo similar abogus.target-nmmv/tmp/mmv.list

bar.txt -> bogus.target
baz.txt -> bogus.target
foo.txt -> bogus.target

(Supongo que enumerará los archivos en orden lexicográfico (alfabético) o en orden de directorio (que puede parecer un orden arbitrario). Si desea algún otro orden, deberá encontrar alguna manera de especificarlo). Luego procese el archivo (por ejemplo, con un script, TBD) para reemplazar las apariciones de bogus.target con 1.txt, 2.txt, 3.txtetc. Luego ejecute

mmv < /tmp/mmv.list

Advertencias: no he probado esto (ya que, como dije, ni siquiera tengo el software). Probablemente debería hacer primero un ensayo en algunos archivos sin importancia y/o hacer una copia de seguridad de todos sus archivos antes de hacer esto.

Tenga en cuenta también que esto probablemente represente al menos tanto trabajo como algunas de las respuestas a las preguntas a las que se vinculó. Como dije, ofrezco esta sugerencia en caso de que quieras hacer esto especialmente con mmv.

PD: Mi respuesta (arriba) fue parcialmente inspirada porÉste.

información relacionada