Bucle sobre archivos en el directorio en Bash
- Bucle a través de archivos
- Bucle sobre el directorio
- Escribir todos los archivos dentro del directorio usando bucle
- Haga copias de seguridad de todos los archivos dentro del directorio
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
.
Creamos una carpeta test
usando mkdir
y creamos cinco archivos dentro de ella usando el comando touch
.
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
.
Puede ver que los archivos de copia de seguridad se crearon con la extensión .bak
con el sufijo dentro de la carpeta.