A veces tenemos que extraer varios archivos comprimidos y rar'd a la vez, todos ubicados en una sola carpeta. Hacerlo a través de la interfaz de usuario de Ubuntu es bastante simple; todo lo que necesita hacer es seleccionar todos los archivos que desea extraer, hacer clic derecho y usar la opción Extraer para extraerlos por completo. El verdadero problema es cuando queremos hacer la misma tarea a través de la línea de comandos. Puede resultar bastante largo, y francamente ilógico, extraerlos individualmente ingresando los comandos de extracción de archivos uno por uno. Aquí viene el bash for loop para rescatar. Puede usarlo para realizar múltiples operaciones similares a la vez.
Este artículo describe cómo puede usar el bucle for para extraer varios archivos del siguiente tipo a través de la línea de comandos de Ubuntu:
- Archivos comprimidos
- Archivos tar.xz
- Archivos rar
- archivos 7z
Hemos ejecutado los comandos y procedimientos mencionados en este artículo en un sistema Ubuntu 18.04 LTS. Nuestras carpetas zip y tar de muestra contienen 4 archivos comprimidos de tipos de archivo zip y rar respectivamente. Estamos usando la aplicación Terminal para usar la línea de comandos de Ubuntu. Puede abrirlo a través del Tablero del sistema o el atajo Ctrl+alt+T.
Descomprimir varios archivos a la vez
Supongamos que una carpeta, una carpeta “zip_files” en nuestro caso, contiene varios archivos comprimidos y queremos extraerlos simultáneamente.
Así es como puede usar el bucle for para simplificar la tarea:
$ for z in *.zip do unzip $z; done
Así es como puede lograr la misma tarea con un solo comando:
$ for z in *.zip; do unzip "$z"; done
Extraiga varios archivos tar.xz a la vez
Supongamos que una carpeta contiene varios archivos tar.xz y queremos extraerlos simultáneamente.
Así es como puede usar el bucle for para simplificar la tarea:
$ for z in *.tar.xz do tar -xf $z; done
Así es como puede lograr la misma tarea con un solo comando:
$ for z in *.tar.xz; do tar -xf "$z"; done
Descomprimir varios archivos a la vez
Utilice el siguiente comando para descomprimir varios archivos rar a la vez.
$ for z in *.rar do unrar e $z; done
O,
$ for f in *.rar; do unrar e “$f”; done
Extrae varios archivos 7z a la vez
Utilice el siguiente comando para extraer varios archivos 7z a la vez.
$ for z in *.7z do 7z e $z; done
O,
$ for z in *.7z; do 7z e "$z"; done
Mediante el uso de bash for loop, puede realizar la frenética tarea de extraer varios archivos comprimidos a la vez. Esta pequeña habilidad que aprendiste en este artículo es especialmente útil cuando tenemos que extraer hasta cientos de archivos comprimidos simultáneamente. No solo para la extracción de archivos, sino que también puede usar el poder del ciclo for para realizar otras tareas similares que pueden llevar más tiempo cuando las ejecuta una por una.