Cambiar el nombre de varios archivos agregando una cadena al principio

21

Para aproximadamente 200 archivos en un directorio, me gustaría agregar la Cadena 1_al comienzo de todos los nombres de archivo.

Los nombres de archivo son, por ejemplo, DATASET_X_Y_Zy el resultado debería ser 1_DATASET_X_Y_Z.

No sé nada acerca de las secuencias de comandos de Shell, pero tal vez haya una línea para la terminal.

macydanim
fuente
El enlace @Rinzwind trata sobre una pregunta diferente. La pregunta de Macydanim es sobre anteponer cadenas a nombres de archivos, no a contenidos de archivos.
jc

Respuestas:

38
  • rename 's/^/1_/' * para renombrar todos los archivos en el directorio actual

o

  • rename 's/^/1_/' DATASET*para renombrar todos los archivos en el directorio actual comenzando con DATASETsu nombre

Explicación: la expresión s/^/1_/dice: "reemplace el comienzo del nombre de archivo (eso significa este símbolo -> ^) 'con 1_".

dAnjou
fuente
Si renameno lo hace fuera de la caja, debe instalarlo prename(cambiar el nombre de PERL).
user1359
14

Puede cambiar fácilmente el nombre de todos los archivos en el directorio actual escribiendo (suponiendo que esté usando bash):

for i in *; do mv "$i" 1_"$i"; done

obviamente tómalo con cuidado; remanente TODOS los archivos en el directorio actual que están 'visibles' (el nombre de archivo no comienza con un '.')

karlacio
fuente
Esta es la primera solución correcta que encontré, que se puede usar para agregar algo así como .csvun subconjunto de archivos, con una expresión de comodín cambiada en lugar de *. +1
Zelphir Kaltstahl
¡Guauu! Bucles en la CLI! Esto es nuevo. :)
Raymond Wachaga
9

Puedes usar pyRenamer . Se puede encontrar en el centro de software de Ubuntu. ingrese la descripción de la imagen aquí El patrón de archivo original debe ser {X} y el patrón de archivo renombrado debe ser 1_ {1}

nickguletskii
fuente
Uno de mis programas favoritos
Allan