Normalmente, los comandos de Linux no proporcionan información relacionada con el progreso de la operación en curso, algo que es muy importante, especialmente cuando se dispone de poco tiempo. Sin embargo, eso no significa que no pueda hacer nada – existe un comando, llamado pv, que muestra información útil sobre el progreso relacionado con la operación en curso de la línea de comandos. En este artículo discutiremos este comando así como sus características a través de algunos ejemplos fáciles de entender.
Comando PV
Desarrollado por Andrew Wood, PV – que significa Pipe Viewer – muestra información relacionada con el progreso de los datos a través de una tubería. La información incluye el tiempo transcurrido, el porcentaje completado (con barra de progreso), la velocidad actual de producción, el total de datos transferidos y la ETA.
«Para utilizarlo, introdúzcalo en un pipeline entre dos procesos, con las opciones adecuadas. Su entrada estándar pasará a su salida estándar y el progreso se mostrará en error estándar,»
Lo anterior explica la página de manual del comando.
Descarga e instalación
Los usuarios de sistemas basados en Debian como Ubuntu pueden instalar fácilmente la utilidad ejecutando el siguiente comando en el terminal:
sudo apt-get install pv
Si está usando cualquier otra distribución de Linux, puede instalar el comando usando el gestor de paquetes instalado en su sistema. Una vez instalado correctamente, puede utilizar la utilidad de línea de comandos en varios escenarios (véase la siguiente sección). Vale la pena mencionar que la versión pv 1.2.0 ha sido utilizada en todos los ejemplos mencionados en este artículo.
Características y uso
Un escenario muy común con el que probablemente la mayoría de nosotros (que trabajamos en la línea de comandos en Linux) nos relacionaríamos es copiar un archivo de película de una unidad USB a su computadora. Si intenta completar la operación anterior utilizando el comando cp, tendrá que esperar ciegamente hasta que la copia esté completa o se produzca algún error.
Sin embargo, el comando pv puede ser útil en este caso. Aquí hay un ejemplo:
pv /media/himanshu/1AC2-A8E3/fNf.mkv> ./Desktop/fnf.mkv
Y aquí está el resultado:
Así que, como puede ver arriba, el comando muestra mucha información útil relacionada con la operación en curso, incluyendo la cantidad de datos que han sido transferidos, el tiempo transcurrido, la velocidad de transferencia, la barra de progreso, el progreso en porcentaje, y la cantidad de tiempo restante.
El comando pv proporciona varios interruptores de visualización. Por ejemplo, puede utilizar -p para visualizar el porcentaje, -t para el temporizador, -r para la velocidad de transferencia, -e para eta y -b para el contador de bytes. Lo bueno es que no tendrás que recordar ninguna de ellas, ya que todas están habilitadas por defecto. Sin embargo, si sólo necesita información relacionada con un interruptor de visualización concreto en la salida, puede pasar ese interruptor en el comando pv.
También hay un interruptor de visualización -n que permite que el comando muestre un porcentaje entero, uno por línea en error estándar, en lugar del indicador de progreso visual normal. El siguiente es un ejemplo de este interruptor en acción:
pv -n /media/himanshu/1AC2-A8E3/fNf.mkv> ./Desktop/fnf.mkv
Este interruptor de visualización en particular es adecuado en escenarios en los que desee canalizar la salida al comando dialog .
Continuando, también hay una opción de línea de comandos, -L, que le permite modificar la velocidad de transferencia de datos del comando pv. Por ejemplo, usé -L para limitar la velocidad de transferencia de datos a 2MB/s.
pv -L 2m /media/himanshu/1AC2-A8E3/fNf.mkv> ./Desktop/fnf.mkv
Como se puede ver en la captura de pantalla anterior, la velocidad de transferencia de datos se ha limitado en función de la dirección.
Otro escenario en el que pv puede ayudar es en la compresión de archivos. He aquí un ejemplo de cómo puede usar este comando mientras comprime archivos usando Gzip:
pv /media/himanshu/1AC2-A8E3/fnf.mkv | gzip> ./Desktop/fnf.log.gz.
Conclusión
Como has observado, pv es una pequeña utilidad útil que podría ayudarte a ahorrar tu precioso tiempo en caso de que una operación de línea de comandos no se esté comportando como se esperaba. Además, la información que muestra también se puede utilizar en scripts de shell. Recomendaría encarecidamente este comando; vale la pena intentarlo.