Cómo usar bash para cambiar la extensión del archivo de múltiples archivos en una carpeta

Cómo usar bash para cambiar la extensión del archivo de múltiples archivos en una carpeta
Este tutorial discutirá una forma rápida de usar bash para cambiar el nombre de los archivos de una extensión específica a otra. Usaremos un bucle bash, encontrar, cambiar el nombre y el comando MV para este.

Método 1: Bash Loop

La forma más común de cambiar las extensiones de archivos de manera recursiva en un directorio es usar una fiesta para bucle. Podemos pedirle al usuario que ingrese el directorio de destino, la extensión anterior y la nueva extensión para cambiar el nombre de usar un script bash.

Paso 1: ensamble el script
Comencemos a armar el guión. La primera parte que necesitamos es obtener el directorio de destino. Para esto, podemos ir a leer como:

#!/bin/bash
Echo "Ingrese el directorio de destino"
Leer Target_dir
CD $ Target_dir
echo "Ingrese la extensión del archivo para buscar sin un punto"
Leer Old_ext
echo "Ingrese la nueva extensión del archivo para cambiar el nombre de sin un punto"
Leer New_ext
echo "$ Target_dir, $ Old_ext, $ new_ext"

El script anterior le pedirá al usuario que el directorio procese y luego CD en el directorio de establecimiento.

A continuación, obtenemos la antigua extensión sin el punto (.); Finalmente, obtenemos la nueva extensión para cambiar el nombre de los archivos.

Ahora que procesemos los archivos. Para esto; Podemos implementar una regla simple que busque recursivamente los archivos como:

para el archivo en *.$ Old_ext
hacer
mv -v "$ archivo" "$ archivo%.$ Old_ext.$ new_ext "
hecho;

El bucle for arriba buscará el directorio aprobado para todos los archivos con la extensión anterior y los cambiará a la nueva extensión.

Para ponerse verboso, usamos el comando MV con -v. Puede suprimir esta salida reemplazando el indicador -v con -

Paso 2: Ejecute el script
Ahora, pongamos a prueba el script. El script final está a continuación:

#!/bin/bash
Echo "Ingrese el directorio de destino"
Leer Target_dir
CD $ Target_dir
echo "Ingrese la extensión del archivo para buscar sin un punto"
Leer Old_ext
echo "Ingrese la nueva extensión del archivo para cambiar el nombre de sin un punto"
Leer New_ext
echo "$ Target_dir, $ Old_ext, $ new_ext"
para el archivo en *.$ Old_ext
hacer
mv -v "$ archivo" "$ archivo%.$ Old_ext.$ new_ext "
hecho;

En esta prueba, usaremos el directorio /var /log y cambiaremos el nombre de todo el .registrar archivos a .bak. Aquí están el contenido del directorio antes de ejecutar el script.

$ ls l/var/log/| grep .registro

Ahora, ejecutemos el guión.

$ chmod +x extensiones.mierda
$ sudo ./extensiones

La captura de pantalla anterior muestra el script que procesa los archivos y renombra todos los archivos con .registrar .bak.

Dado que este es un script interactivo, es útil cuando no desea codificar la extensión.

El siguiente es el contenido del directorio /var /log después de la secuencia de comandos.

$ ls -l/var/log/| grep .bak

Para revertir los cambios, cambie la extensión anterior a .bak y la nueva extensión como .registro

Método 2: Cambiar el comando

Si no tiene ganas de trabajar con un script, puede usar la herramienta de cambio de nombre para cambiar las extensiones de archivo de manera recursiva.

Para instalar el cambio de nombre, use el comando:

$ sudo apt -get install rename -y

Una vez instalado, puede usar el comando renombrar como:

# Cambiar al directorio de destino
CD/var/log/
# Extensión de cambio
Sudo Rename 's/\.registro/.bak/' *.registro

Para revertir los cambios, cambie el .bak a .registro y viceversa.

$ sudo rename 's/\.bak/.registro/' *.bak

Método 3: comando MMV

También puede usar el comando mmv que le permite mover varios archivos simultáneamente. Instale MMV con el comando:

$ sudo apt-get instalación mmv

Para cambiar el nombre de los archivos con el comando MMV:

$ cd/var/log/
MMV "*.CSV ""#1.XLS "

El #1 mueve los archivos al directorio actual. Una vez que ejecute el comando, cambiará el nombre de todo .Archivos de registro a la extensión especificada.

Resumiendo

Este artículo discutió varios métodos, puede cambiar el nombre de las extensiones de archivos recursivamente en un directorio específico. Sin embargo, es bueno tener en cuenta que puede implementar estrategias distintas a las discutidas en esta guía.

Gracias por leer y recuerda compartir!