Bash scripting: loops para automatizar trabajos cotidianos

bash scripting

Seguramente te has topado con algunas tareas que tengas que hacer de forma repetitiva. Por ejemplo, imagina que tienes un directorio lleno de archivos y deseas cambiar el nombre de todos ellos, o que necesitas comprimir varios ficheros o descomprimirlos, quizás necesites convertir de un formato a otro, copias de seguridad periódicas, etc. Para todo ello tienen soluciones los scripts.

Estas tareas cuando se aplican a un solo archivo en Bash están bien. El problema es cuando tienes que aplicarlo a decenas de ellos. La tarea puede ser muy molesta. Con un simple loop o bucle en Bash te podrías quitar ese problema y que se ejecute una tarea de forma reiterativa para automatizarla y que no te cueste tanto trabajo. La forma de hacerlo es super simple, pero muchos usuarios nuevos no lo hacen y terminan haciendo la tarea manualmente o buscando programas gráficos que lo hagan…

Para ello, quédate con esta estructura:


for x in objetivo; do comando; done

Por ejemplo, imagina que quieres eliminar ficheros llamados nombre0, nombre1, nombre2, nombre3, etc., hasta el número nombre100. Ir uno a uno con rm sería bastante tedioso, en cambio, puedes ejecutar la siguiente orden:


for n in 'seq 100'; do rm nombre$n; done

O tal ve imagina que tienes un directorio con varios ficheros .zip comprimidos que quieres extraer. Para no tener que ir uno a uno puedes usar:

</pre>
<pre>for n in *.zip; do unzip "$n"; done

Puedes alterar estos loops de Bash como prefieras para usar la herramienta que necesitas en tu caso. Por ejemplo, otro más, ahora imagina que quieres desempaquetar un tarball:

</pre>
<pre>for n in *.tar.xz; do tar -xf "$n"; done</pre>
<pre>

Espero haberte ayudado a no perder tanto tiempo haciendo todas esas tareas de una en una y que puedas aplicar esto para agilizar tu trabajo cotidiano. Como ves, no tiene misterio, es super sencillo…


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: AB Internet Networks 2008 SL
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.