Anteponer nombres de archivos en shell

Anteponer nombres de archivos en shell

Tengo 100 archivos .png en una carpeta que dice test.png, ejemplo.png, etc.

Quiero anteponerlos New_para que se les cambie el nombre New_test.png, New_example.pngetc.

¿Cómo puedo hacerlo en Shell?

Respuesta1

No especificaste un sistema operativo. Esta respuesta supone Windows.

Mi primer pensamiento fue un comando simple como

for %f in (*.png) do rename "%f" "New_%f"

Pero a.pngprimero se cambió el nombre de un archivo llamado New_a.pngy se movió hacia abajo en orden alfabético :-( El bucle cambió el nombre de este archivo asegundohora de New_New_a.png.

Por tanto, esto debe realizarse en dos pasos:

dir /b *.png > png.txt
for /F %l in (png.txt) do rename "%l" "New_%l"
del png.txt

La primera línea crea un archivo de texto que contiene los nombres de todos los archivos png en el directorio actual. La segunda línea analiza cada línea del archivo y cambia el nombre de los png.

información relacionada