Bash recorrer archivos en un directorio

Bash Loop Through Files Directory



En Ubuntu, incluido Bash, los bucles han hecho posible aplicar operaciones en varios archivos. El bucle es lo más efectivo, ya que permite al usuario aplicar la misma lógica al elemento repetidamente mediante el uso de una pequeña línea de código.

Para comprender el concepto de recorrer archivos en el directorio, necesita acceso a la aplicación y los servicios de Ubuntu. Cuando tiene algunos privilegios, solo puede operar con archivos y directorios.







Debería haber instalado Bash en el sistema operativo Ubuntu. En algunas instalaciones, se instala por defecto en la actualización de paquetes. Si ya está instalado, debe actualizar la versión porque debe ser superior a 4. Para continuar con la guía actual, debe mantener la versión anterior a 4. Para verificar la versión del Bash preinstalado en su sistema, use el comando en la terminal de Ubuntu.



$Intento--versión



Entonces tienes que realizar algunas funciones en archivos y directorios. Puede ejecutar los comandos que se explican a continuación en cualquier directorio de su elección. Pero para ser precisos, es preferible crear un nuevo directorio para que todas las pertenencias de este directamente sean fácilmente accesibles al abrirlo.





El primer paso es crear un directorio. Hemos tomado un nombre de muestra del directorio abc. Cree un directorio ejecutando el comando.

$mkdirabc



Después de crear el directorio, ahora debe ejecutar todos los comandos en él. Entonces, después de la creación del directorio, cambie a ese directorio. Utilice el comando que se cita a continuación:

$cdabc

Después de ir al directorio, ahora cree algunos archivos usando el comando táctil.

$tocarfile1.txt

Se utilizan muchos métodos para crear un archivo en Ubuntu. Además del comando touch, hemos usado el comando echo aquí para crear un archivo y agregar el contenido colectivamente en un solo comando:

$echoLinux, ubuntu, Postgresql>file7.txt

Este archivo se crea en un directorio simple que actualmente se ejecuta de forma predeterminada. Por lo tanto, el nombre del directorio recién creado no se agrega con el símbolo del sistema. También puede crear archivos usando un rango y expansión en el comando táctil.

$tocarexpediente-{1..8}.TXT

Al usar este comando en nuevos archivos de extensiones .txt se crearán usando un solo comando.

Después de eso, ahora puede recorrer el directorio recién creado. Muestra los nombres de los archivos. Como tenemos que recorrer los archivos presentes en el directorio, necesitamos un bucle. Los bucles son muy efectivos de usar, ya que obtienen los datos en menos tiempo y requieren menos entrada. Aquí usaremos un bucle for. Al usar este bucle, cada nombre de archivo se mostrará en la siguiente línea.

$por expediente en *;hacer echo $ archivo;hecho

* se utiliza para todos los archivos presentes en este directorio. Esto permite que el bucle 'for' capture todos los archivos. Pero para que la salida sea precisa, puede agregar algunos términos con el signo de asterisco. Por ejemplo, 'archivo- *' se utiliza para todos los archivos que comienzan desde el archivo. Y * .txt para recuperar los archivos que tienen extensiones .txt. Usaremos estos ejemplos más adelante en el artículo.

Este bucle funcionará para que recupere todos los archivos del directorio y luego muestre todos los archivos a través del comando echo. El signo $ aquí representa el nombre del archivo. En el resultado, puede ver que se muestra cada nombre de archivo.

Después de verificar los archivos creados mostrando los nombres de los archivos, ahora es el momento de ingresar el valor en los archivos porque los archivos creados están vacíos. Esto se puede hacer manualmente abriendo cada archivo en el editor de texto y luego escribiendo los datos. La segunda opción es ingresar datos en cada archivo a través del comando en la terminal. Pero requiere tiempo ingresar los datos en cada archivo a través de un solo comando para cada archivo. Pero se puede hacer fácil y colectivamente usando for loop en un solo comando.

$por expediente en *;hacer echo -2 $ archivo nLinux Ubuntu> $ archivo;hecho

Después de la ejecución del comando, se ingresó el valor en cada archivo que creamos. Cuando se usa con echo, la bandera '-e' conservará la nueva línea en el archivo. Para ver los datos ingresados, puede navegar al directorio 'abc'. Ahora abra cualquier archivo de texto. El archivo ya no está vacío.

'$ File mostrará el nombre del archivo primero en el archivo, y los datos que ingresó se verán en la segunda línea porque n se usa para cambiar las palabras usadas después de esto a otra línea. También puede verificar los datos ingresados ​​a través del comando.

$por expediente en *;hacer gato $ archivo;hecho

El comando Cat se utiliza para recuperar los datos presentes en todos los archivos del directorio.

Tanto el procedimiento para ingresar los datos como para recuperarlos se puede realizar a través de un solo comando.

$por expediente en *;hacer echo-Y$ archivo nprogramación rápida> $ archivo;gato $ archivo;hecho

El primer paso es escribir los datos en el archivo y luego mostrarlos. Cuando ejecute el comando, la salida será la siguiente:

Cada archivo contiene el mismo valor. Esto se debe al ciclo 'for'.

Conocemos el ciclo para buscar los datos e insertar los valores, etc., pero el ciclo también se usa para crear copias de seguridad. Estos archivos tienen la extensión .bak al final. Ahora ejecute el comando de copia de seguridad en el shell para ver la copia de seguridad de cada archivo.

$por expediente en *;hacer cp $ archivo $ archivo.detrás;hecho;

La palabra clave cp se utiliza para realizar una copia de seguridad de todos los archivos. Ahora para ver los archivos en los que se aplica este comando. Usamos el comando como:

$ls- los

Ahora es visible desde la salida que se muestra el detalle de los archivos. Fecha, nombre de archivo, nombre de usuario y hora también en la que se eliminó. Además, tiene una copia exacta de cada archivo.

Si queremos solo los archivos jpeg. Usaremos esto en el comando

$por expediente en *.jpeg;hacer echo $ archivo;hecho

Esto traerá solo los nombres de las imágenes.

Un simple hallazgo también puede hacer la misma función. Obtendrá todos los archivos con la extensión .sh.

$encontrar. - nombre*sh

Usaremos la palabra clave encontrar en el bucle for a.

$por expediente en *;hacerencontrar. Expediente.*;hecho

Esto traerá todos los archivos al directorio actual. Estos tienen extensiones de .bak, .jpeg, .txt. etc.

Ahora, si desea ver el nombre de todos los archivos de directorio y los datos dentro de ellos, esto también se hace mediante el ciclo 'for'.

$por expediente en *;hacer expediente $ archivo;hecho

Conclusión

Recorrer los archivos en cualquier directorio ya no es difícil, como sabemos, usar bucles en Bash y funcionar en los sistemas operativos Linux. Este tutorial es una guía completa para crear, acceder y realizar operaciones en el directorio mediante un bucle 'for'.