Mostrar barra de progreso en Linux con pv y tuberías

En el artículo hoy veremos como mostrar una barra de progreso en la terminal de GNU Linux, mediante el comando pv y el uso de tuberías (en inglés pipes)

De esta manera nos podemos cerciorar del tiempo transcurrido en la copia de un fichero, o el tiempo que queda en la descarga de un archivo.

Barra de progreso en GNU Linux con pv

Antes de ver su instalación veamos en que consiste. El programa pv muestra el progreso de los datos a través de una tubería, dando información del tiempo transcurrido, porcentaje completado (con la barra de progreso), tasa de rendimiento y total de datos transferidos.

Para utilizar la herramienta debemos insertarla en una tubería entre dos procesos, con las opciones apropiadas. Su entrada estándar (stdin) pasará a través de la salida estándar (stdout), y así la barra de progreso en el error estándar (stderr)  Sí bastante teórica la cosa, así que vamos a ver su funcionamiento.

Instalación en GNU Linux de pv

La manera de instalar el programa es bien sencilla, ya que se encuentra en la mayoría de distribuciones. Veamos ejemplos de la instalación:

Instalación de pv en Debian, Ubuntu, LinuxMint y similares

1
2
sudo apt update
sudo apt install pv

Instalación en RHEL, Centos y Scientific Linux

1
2
sudo yum update
sudo yum install pv

Instalación en Fedora

1
sudo dnf install pv

En SUSE y OpenSuse

1
2
sudo zypper update
sudo zypper install pv

Su instalación en Arch y derivadas

1
sudo pacman -S pv

Además también la podemos instalar en sistemas UNIX, como FreeBSD

1
2
3
4
cd /usr/ports/sysutils/pv/
make install clean
#O bien mediante el paquete binario
pkg_add -r pv

Ahora, para trabajar con el herramienta, veamos algunos ejemplos.

Uso de pv en GNU/Linux y sistemas UNIX

Sus usos habituales son los siguientes:

1
2
3
4
5
pv fichero
pv opciones fichero
pv fichero > fichero.out
pv opciones | commando > fichero.out
comando1 | pv | comando2

Copiamos información a un fichero en otra ubicación:

1
pv ufw.log* > /home/davidochobits/registros-cortafuegos.log

Tal y como se muestra en la imagen:

Muestra funcionamiento pv

Podemos ver la barra de progreso al comprimir datos hacia un fichero.

1
pv /var/log/syslog | zip > syslog.zip

Vemos el resultado en la imagen:

Un parámetro interesante es “-L“, que limita el máximo de transferencia de datos. Veamos el ejemplo de la copia de un fichero grande ISO a otra ubicación:

1
pv -L 1m debian-9.6.0-amd64-netinst.iso > Descargas/debian.is

Aquí tenéis la imagen del ejemplo:

Para comprobar su versión:

1
pv --version

Y esto es todo. Si revisáis su página de man, podéis exprimir al máximo sus posibilidades.

Nos vamos leyendo.

3 Respuestas

  1. Wooow !! A mí, pv me encanta!! Entre otras cosas, yo lo suelo usar cuando tengo que crear o restaurar dumps de esos enormes de base de datos, y por lo menos necesitas que alguien te diga qué te queda.

    Además, últimamente estoy publicando en mi instagram algunos comandillos, y puse uno de pv, junto con zenity, para ver la barra de progreso más bonita, con GUI y todo… https://www.instagram.com/p/BrLWeINHtwd/

  2. Nico Ĉ dice:

    Mmm… Buenos datos, me pregunto si es posible combinarlo con zenity al ulizar progress.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies
A %d blogueros les gusta esto: