¿Cómo puedo renombrar por lotes un conjunto de nombres de archivo en Linux?


9

Tengo una carpeta con imágenes llamadas:

pic001-2.png
pic002-2.png
pic003-2.png 

¿Cómo les cambio el nombre a lo siguiente?

pic001.png
pic002.png
pic003.png 

Lo he intentado mv "pic*-2.png" "pic*.png"pero sigo recibiendo errores.

Respuestas:


11

Esto eliminará el primero -2encontrado en cada nombre de archivo:

for f in pic*-2.png; do
  mv "$f" "${f/-2/}"
done

Para probarlo, solo anteponga echoa la mvlínea.


9

¡Necesita el comando 'renombrar' apropiadamente nombrado!

Intenta algo como esto:

rename 's/(pic\d+)-\d\.jpg/$1.jpg/' pic*.jpg

Toma una expresión regular perl como primer argumento, por lo que las opciones de manipulación y coincidencia de patrones son bastante amplias. Consulte la página del comando man rename (1) para obtener todos los detalles.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.