GNU Parallel: haz más cosas simultáneamente en el terminal

Si realizas muchos trabajos desde la línea de comandos, quizás te interesen algunos proyectos como tmux, entre otros. Pero hoy te vamos a presentar GNU Parallel por si no lo conocías. Con él podrás hacer más cosas a la vez de forma simultánea, convirtiendo tu consola en una central multitarea para realizar operaciones con mayor eficiencia y rapidez. Todo gracias a las funcionalidades que permite GNU Parallel para ejecutar tareas de forma paralela.

GNU Parallel te permitirá sacarle más partido a tu CPU cuando trabajas con comandos, con la posibilidad de ejecutar varios comandos de una vez de una forma simple y sencilla, ahorrando tiempo. Para instalarlo, puedes encontrarlo en la mayoría de repositorios de las importantes distribuciones, así que solo tendrás que usar el gestor de paquetes que utilices seguido del nombre parallel para que se instale. Una vez instalado, su funcionamiento tampoco es nada complicado como te vamos a enseñar.

Por ejemplo, si quieres cambiar el formato de varios ficheros .jpg probablemente comiences usando un comando por cada uno de los ficheros existentes, pero si son demasiados esto se complica. En caso de ser algo más experimentado y en caso de tener bastantes ficheros con los que trabajar, ir uno a uno no resulta práctico, por lo que seguramente uses un script que te ayude con el trabajo para automatizar el trabajo.

En cambio, con GNU Parallel será de una forma similar al comando xargs si alguna vez lo has utilizado. Por ejemplo, para cambiar el formato de los .jpg a .png podríamos hacer lo siguiente:

find /home -name "*.jpg" | parallel -I% --max-args 1 convert % %.png

Con eso conseguimos que el comando find busque todos los ficheros .jpg en el directorio /home con cualquier nombre y le pase todos los resultados a parallel mediante la pipe, que luego transmitirá de uno a uno al comando convert para convertirlos a png. Es decir, va a realizar convert  nombre1.jpg nombre1.png, convert nombre2.jpg nombre2.png, y así sucesivamente…


Deja un comentario

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