Herramientas como
progress
y opciones nativas dersync
odd
permiten 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
,unzip
scp
,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.