GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo cambiar el nombre de varios archivos en un solo comando o secuencia de comandos en Unix?

Esta pregunta ya tiene respuestas aquí :Cambiar el nombre de los archivos en el directorio

(6 respuestas)
¿Cómo limpiar las extensiones de archivo?

(7 respuestas)
Cerrado hace 7 años.

Tengo la siguiente lista de archivos

aro_tty-mIF-45875564pmo_opt
aro_tty-mIF-45875664pmo_opt
aro_tty-mIF-45875964pmo_opt
aro_tty-mIF-45875514pmo_opt
aro_tty-mIF-45875524pmo_opt

que necesito renombrar

aro_tty-mImpFRA-45875564pmo_opt
aro_tty-mImpFRA-45875664pmo_opt
aro_tty-mImpFRA-45875964pmo_opt
aro_tty-mImpFRA-45875514pmo_opt
aro_tty-mImpFRA-45875524pmo_opt

Respuesta aceptada:

La mayoría de los shells estándar proporcionan una forma de realizar una sustitución de texto simple dentro de las variables del shell. http://tldp.org/LDP/abs/html/parameter-substitution.html explica lo siguiente:

${var/Pattern/Replacement}

First match of Pattern, within var replaced with Replacement.

Así que use este script para recorrer todos los archivos apropiados y cambiar el nombre de cada uno de ellos:

for file in aro_tty-mIF-*_opt
do
    mv -i "${file}" "${file/-mIF-/-mImpFRA-}"
done

He agregado una opción -i para que tenga la oportunidad de confirmar cada operación de cambio de nombre. Como siempre, debe hacer una copia de seguridad de todos sus archivos antes de realizar una gran cantidad de cambios de nombre o eliminación.


Linux
  1. Cómo cambiar el nombre de los archivos en Linux

  2. ¿Cómo ftp y descargo archivos desde un UNIX Shell Script?

  3. Cómo reemplazar una cadena en varios archivos en la línea de comando de Linux

  4. ¿Cómo cambiar el nombre de varios archivos de una extensión a otra en Linux/Unix?

  5. Linux Bash Script, ¿comando único pero varias líneas?

Cómo cambiar el nombre de los archivos en Linux

Comando Renombrar en Linux (Renombrar Múltiples Archivos)

Cómo cambiar el nombre de un archivo (s) en Linux

Cómo cambiar el nombre de archivos y directorios en Ubuntu 20.04

Cómo ejecutar múltiples comandos de Linux en un solo comando

Comando ls en Linux/UNIX