Bucle sobre archivos en el directorio en Bash

Nilesh Katuwal 30 enero 2023
  1. Bucle a través de archivos
  2. Bucle sobre el directorio
  3. Escribir todos los archivos dentro del directorio usando bucle
  4. Haga copias de seguridad de todos los archivos dentro del directorio
Bucle sobre archivos en el directorio en Bash

Los bucles en Bash han hecho factible realizar operaciones en muchos archivos. Debe tener algunos privilegios para trabajar con archivos y carpetas.

El método más eficaz es el bucle, que permite al usuario volver a aplicar la misma lógica al objeto utilizando una simple línea de código.

Bucle a través de archivos

Primero, crearemos un directorio de test y crearemos múltiples archivos dentro del directorio. Vamos a crear cinco archivos en el directorio test como file1.txt, file2.txt, file3.txt, file4.txt y file5.txt.

bucle sobre los archivos en el directorio en bash

Creamos una carpeta test usando mkdir y creamos cinco archivos dentro de ella usando el comando touch.

ejemplo de bucle bash

Bucle sobre el directorio

Recorramos el directorio test recién creado y mostremos los nombres de los archivos dentro del directorio. Usaremos el bucle for para hacer esto.

~/test$ for file in *; do echo $file; done

Navegue hasta el directorio test e ingrese el comando anterior después de $. * denota todos los archivos dentro del directorio.

Producción :

file1.txt
file2.txt
file3.txt
file4.txt
file5.txt

Escribir todos los archivos dentro del directorio usando bucle

Escribir ¡Hola Mundo! en cada archivo, usaremos el bucle for para iterar sobre los archivos y el indicador -e en echo para conservar las líneas nuevas.

~/test$ for file in *; do echo -e "$file\nHello World!"> $file ; done

$file mostrará el nombre del archivo al principio del archivo, y \n romperá la línea, y Hello World! aparecerá en la segunda línea. Para verificar los datos que agregamos al archivo, debemos mostrarlos usando cat con un bucle for.

~/test$ for file in *; do cat $file ; done

Producción :

file1.txt
Hello World!
file2.txt
Hello World!
file3.txt
Hello World!
file4.txt
Hello World!
file5.txt
Hello World!

Haga copias de seguridad de todos los archivos dentro del directorio

La extensión .bak denota los archivos de copia de seguridad. Usaremos cp con el bucle for para crear copias de seguridad.

~/test$ for file in *; do cp $file "$file.bak" ; done

Puede usar ls -l para listar todos los archivos dentro del directorio test.

~/test$ ls -l

Echemos un vistazo al directorio test.

bash copia de seguridad

Puede ver que los archivos de copia de seguridad se crearon con la extensión .bak con el sufijo dentro de la carpeta.

Artículo relacionado - Bash Loop