Skip to main content

Al momento de copiar un archivo grande de un directorio a otro o de un sistema a otro a través de la línea de comandos, no se verá ninguna indicación de la tarea si se utiliza el comando ‘cp’. No puede estar seguro de si el proceso de copia continúa o no, hasta que se completa el proceso de copia. En esos casos, puede ser utilizado el comando pv para monitorear el progreso de los datos. El comando pv, acrónimo de “pipe viewer”, permite ver el progreso de los datos al proporcionar la siguiente información:

  • tiempo total transcurrido,
  • porcentaje completado (con barra de progreso),
  • tasa de rendimiento actual,
  • datos totales transferidos,
  • y ETA.

Instalar en Linux

En Debian, Linux Mint o Ubuntu:

$ bash3.2:/$ sudo apt install pv
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
  doc-base
The following NEW packages will be installed:
  pv
0 upgraded, 1 newly installed, 0 to remove and 59 not upgraded.
Need to get 44.5 kB of archives.
After this operation, 139 kB of additional disk space will be used.
Get:1 http://sa-saopaulo-1-ad-1.clouds.archive.ubuntu.com/ubuntu jammy/main amd64 pv amd64 1.6.6-1build2 [44.5 kB]
Fetched 44.5 kB in 0s (92.7 kB/s)
Selecting previously unselected package pv.
(Reading database ... 175929 files and directories currently installed.)
Preparing to unpack .../pv_1.6.6-1build2_amd64.deb ...
Unpacking pv (1.6.6-1build2) ...
Setting up pv (1.6.6-1build2) ...
Processing triggers for man-db (2.10.2-1) ...
Scanning processes...
Scanning linux images...

No services need to be restarted.

No containers need to be restarted.

Monitoreando el progreso de los datos usando el comando ‘pv’

Para ver el caso de la forma mas notoria, vamos a ver la diferencia entre los comando “cp” y “pv”. Con cp, el resultado sería el siguiente:

$ cp debian-11.4.0-amd64-netinst.iso /Volumes/GoogleDrive/My\ Drive/

Con pv, el resultado sería el siguiente

$ pv debian-11.4.0-amd64-netinst.iso > /Volumes/GoogleDrive/My\ Drive/debian-11.4.0-amd64-netinst.iso

En este caso, se puede ver muy bien la diferencia. No es el único, también podemos emplear pv con comandos tales como:

  • dd
  • tar
  • zip

Además, suele ser muy útil su integración con dialog para scripts interactivos.

tar -czf - debian-11.4.0-amd64-netinst.iso | (pv -n > debian.tgz) 2>&1 | dialog --gauge "Comprimiendo el archivo, aguarde…" 10 70 0

Para más detalles, está siempre disponible el manual

man pv

El contenido de este artículo esta bajo licencia Creative Commons.