Cambiar el nombre de un archivo en Bash

MD Aminul Islam 20 junio 2023
  1. Use el comando mv para cambiar el nombre de un archivo en Bash
  2. Use el comando renombrar para cambiar el nombre de un archivo en Bash
Cambiar el nombre de un archivo en Bash

Con la ayuda del script Bash, puede automatizar su tarea. El cambio de nombre de archivos es una tarea común para todo tipo de sistemas.

Puede cambiar el nombre de todos los archivos uno por uno manualmente. Pero si tiene una secuencia en su nombre de archivo, es mejor automatizar esta tarea.

De esta manera, puede cambiar fácilmente el nombre de todos los archivos en un directorio con una secuencia adecuada.

En este artículo, vamos a presentar una forma a través de la cual puede cambiar fácilmente el nombre de todos los archivos en un directorio. Además, veremos ejemplos y explicaciones necesarias para facilitar el tema.

Use el comando mv para cambiar el nombre de un archivo en Bash

El script Bash contiene un comando integrado conocido como mv. El comando mv se usa principalmente para mover directorios y archivos de una ubicación a otra.

También se puede utilizar para cambiar el nombre de un archivo y un directorio. Una cosa importante acerca de este comando es que si no especifica el nuevo nombre del archivo, el nombre del archivo será el mismo en su nueva ubicación.

La sintaxis general de este comando es $ mv [OPCIONES] ORIGEN DESTINO. Las opciones disponibles para este comando son:

  1. mv -f: este indicador obligará a moverse sobrescribiendo un archivo de destino sin aviso.
  2. mv -i: este indicador es para el aviso interactivo antes de sobrescribir.
  3. mv -u - Esta bandera es para la actualización. Esto solo moverá el archivo cuando sea una fuente nueva que el destino.
  4. mv -v - Esta bandera imprimirá todos los archivos de origen y destino.
  5. man mv - Esta bandera abrirá el manual de ayuda.

Supongamos que tenemos una lista de archivos con la siguiente secuencia.

1_file.txt
2_file.txt
3_file.txt
4_file.txt
5_file.txt
6_file.txt

Ahora, mira el siguiente ejemplo de código.

for file in *.txt
 do
   mv "$file" "${file/_file.txt/_Textfile.txt}"
 done

En el ejemplo anterior, renombramos todos los archivos con el tipo de .txt. Para hacer eso, usamos un bucle for con el comando mv.

Ahora la sintaxis general para este propósito es mv "$LoopVar" "${LoopVar/PreviousName.txt/NewName.txt}".

Aquí debe tener en cuenta que debe incluir una variable de bucle con el nombre del archivo; de lo contrario, puede causar sobrescritura ya que es un nombre generado por el sistema.

Ahora, cuando ejecute el código anterior, verá que todos sus archivos se renombran como se muestra a continuación.

1_Textfile.txt
2_Textfile.txt
3_Textfile.txt
4_Textfile.txt
5_Textfile.txt
6_Textfile.txt

Una cosa importante para este comando es especificar una parte común del nombre de archivo para identificar los archivos. Puede ser el tipo de archivo o cualquier otro patrón común en el nombre del archivo.

De lo contrario, es posible que el comando no cambie correctamente el nombre de todos los archivos.

Use el comando renombrar para cambiar el nombre de un archivo en Bash

También hay un comando de terceros llamado renombrar en el script Bash. Pero es necesario instalarlo antes de usarlo.

Para instalar este comando con su entorno de shell, puede seguir el siguiente comando para Ubuntu y Debian.

sudo apt install rename

Después de eso, puede cambiar el nombre de los archivos como el siguiente.

rename [Your Options] 's/[Current Filename]/[New Filename]/' [Filename]

Este comando también contiene algunas opciones como la siguiente.

  1. -a: esta opción reemplazará todos los nombres de archivo excepto el primero.
  2. -f: esta opción obligará a sobrescribir los archivos existentes.
  3. -h - Esta opción mostrará el texto de ayuda.
  4. -i: esta opción mostrará una notificación rápida antes de sobrescribir los archivos existentes.
  5. -l: esta opción reemplazará el último elemento de aparición en lugar del primero.
  6. -n: esta opción realiza una ejecución en seco.
  7. -s: esta opción cambia el nombre del objetivo en lugar del enlace simbólico.
  8. -v: esta opción muestra el resultado en la versión detallada.
  9. -V - Esta opción muestra la versión del comando.

Podemos cambiar el nombre del conjunto de archivos anterior usando el siguiente comando.

rename -v 's/_Testfile/_Test/' *.txt

Y mostrará el siguiente resultado.

1_Testfile.txt renamed as 1_Test.txt
2_Testfile.txt renamed as 2_Test.txt
3_Testfile.txt renamed as 3_Test.txt
4_Testfile.txt renamed as 4_Test.txt
5_Testfile.txt renamed as 5_Test.txt
6_Testfile.txt renamed as 6_Test.txt
Note
Los códigos utilizados en este artículo están escritos en Bash. Solo funcionará en el entorno Linux Shell.
MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Artículo relacionado - Bash File