Herramientas como
progressy opciones nativas dersyncoddpermiten monitorizar fácilmente tareas que antes se ejecutaban “a ciegas”
En el mundo Linux, muchos comandos básicos como cp, mv, rm, tar o cat son potentes, eficientes… pero también silenciosos. Cuando se copian archivos pesados o se ejecutan tareas largas, no hay indicaciones visuales sobre cuánto falta para que finalicen. Para tareas simples puede no ser un problema, pero en entornos productivos o con archivos grandes, disponer de una barra de progreso resulta esencial.
Afortunadamente, existen soluciones eficaces y ligeras para añadir información de progreso sin modificar los comandos originales. Desde herramientas nativas como rsync o dd, hasta utilidades como progress, que pueden monitorizar muchos comandos sin necesidad de scripts adicionales.
rsync: sincronización con barra de progreso incorporada
Uno de los comandos más completos para copiar y sincronizar archivos es rsync, ampliamente usado tanto en copias locales como remotas. Este comando cuenta con una opción nativa para mostrar el avance de cada archivo:
rsync -avh --info=progress2 origen/ destino/
La opción --info=progress2 proporciona una barra de progreso detallada y total, ideal para seguir la transferencia de grandes volúmenes de datos o carpetas completas.
dd: creación de discos con información en tiempo real
El comando dd es una navaja suiza para clonar discos, crear imágenes o preparar USBs de arranque. Tradicionalmente, su falta de feedback lo hacía incómodo de usar. Sin embargo, desde hace algunas versiones, admite la opción:
dd if=/dev/sda of=backup.img status=progress
Lenguaje del código: JavaScript (javascript)
Con status=progress, muestra el número de bytes transferidos y permite saber en qué punto se encuentra la operación.
progress: la herramienta universal para mostrar el avance
Para los comandos que no disponen de una opción nativa de progreso, existe una solución elegante: el programa progress. Este pequeño pero potente comando monitoriza procesos activos del sistema y extrae su estado en tiempo real, ofreciendo una barra de progreso para operaciones como cp, mv, tar, cat, gzip, scp, entre otros.
Instalación según la distribución:
- Debian, Ubuntu, Linux Mint, Pop!_OS:
sudo apt install progress - Fedora, RHEL, CentOS, AlmaLinux:
sudo dnf install progress - Arch, Manjaro, Garuda:
sudo pacman -S progress
Una vez instalado, basta con ejecutar:
progress
Esto mostrará los procesos activos compatibles que el comando está siguiendo, junto a su porcentaje completado.
Uso en tiempo real con watch
Para monitorizar una operación activa como una copia de archivos grande, puedes usar:
cp archivo.iso /mnt/ &
watch progress
Este comando lanza el proceso de copia en segundo plano y abre una vista en tiempo real actualizada cada 2 segundos gracias a watch.
Uso inmediato con PID
También es posible vincular directamente progress al proceso en ejecución, usando su ID:
cp archivo.iso /mnt/ & progress --monitor --pid $!
El símbolo $! recupera el PID del último comando en segundo plano. De este modo, progress muestra el avance sin necesidad de abrir otra terminal.
¿Qué comandos son compatibles con progress?
La herramienta detecta y muestra el avance en tareas ejecutadas con:
cp,mv,tar,dd,gzip,gunzip,bzip2,xz,zip,unzipscp,rsync,cat,cut,7z,7za,adb, entre muchos otros
También puede mostrar el estado de procesos de sistema como fg o comandos dentro de scripts.
Conclusión
Aunque algunos comandos como rsync o dd ya incluyen opciones para mostrar el progreso, es fácil olvidarlas en el momento de ejecutar tareas urgentes. En esos casos, progress se convierte en una solución práctica, no invasiva y eficaz, ideal para administradores de sistemas, técnicos y usuarios que necesitan ver qué está pasando sin perder tiempo en herramientas más complejas.
La transparencia en las operaciones no solo mejora la productividad, sino también la confianza del usuario. Y con herramientas tan sencillas de usar como esta, ya no hay excusa para trabajar “a ciegas” en la terminal.