En algunos casos, al copiar un archivo grande, como una película o una imagen del sistema operativo, el comando cp tarda más de lo esperado en función de la carga de su sistema. Dado que no informa del desarrollo de la operación, se hace difícil comprender lo que está ocurriendo.

En situaciones como ésta, un comando como cv puede ser de gran ayuda, ya que no sólo le permite conocer el desarrollo de la operación, sino que también es eficiente en mostrar el tiempo de permanencia. En este artículo, hablaremos del comando además de algunos ejemplos útiles.

Introducción

El comando cv es una energía que busca particularmente los comandos estándar de coreutils, como cp, mv, dd, tar, cat, y más, que están actualmente trabajando en tu sistema y muestra su porcentaje de progreso. Aunque es específico de Linux, un puerto de Mac OSX está igualmente disponible.

Descarga e instalación

Para descargar e instalar el comando cv, dirígete a su repositorio en Github y descarga el paquete de fuentes (el nombre del archivo descargado en mi caso fue «cv-master. zip»). Una vez hecho esto, extrae los archivos utilizando el siguiente comando:

unzip cv-master. zip

Entra en el sitio del directorio «cv-master» y ejecuta los siguientes comandos para construir el bundle e instalar el binario:

makemakeinstall

Ten en cuenta que el comando cv depende de la biblioteca «ncurses», por lo que es posible que tengas que instalar los paquetes correspondientes, lo que puedes hacer ejecutando el siguiente comando

sudoapt-get install ncurses-dev

Otro punto que vale la pena señalar es que después de la instalación, el binario entra en «/ usr/local/bin», así que asegúrese de que la ruta se añade a su entorno de sistema, de lo contrario su shell no será capaz de descubrir el comando cuando lo ejecute. Una opción sería alterar su directorio existente a «/ usr/local/bin» y después llevar a cabo el comando en el método de la lista de abajo:

./ cv

Uso

Aquí hay algunos ejemplos de cómo se puede utilizar este comando:

Tenga en cuenta: Todos los ejemplos proporcionados en este post son evaluados en Ubuntu 14.04.

Un ejemplo estándar

Como el comando cv muestra el progreso de otros comandos que se están ejecutando, tiene que haber un comando que se ejecute lo suficientemente largo para que el comando cv pueda mostrar algo. Por ejemplo, intenté copiar un archivo importante de mi pen-drive a mi caja Linux, y mientras el comando cp se llevaba a cabo, inmediatamente cambié a otra pestaña del shell y ejecuté el siguiente comando

./ cv

El comando mostró la siguiente lista de salida:

cv-default-ouput-single-command

El primer campo en la salida es el PID del comando que se está siguiendo, seguido por el comando y el desarrollo en porcentaje junto con los números. Un punto que vale la pena tener en cuenta es que la primera línea en la salida del comando cv (cat inactive/flushing/streaming/ …) es por defecto– revisé el código y encontré que la línea se imprime bajo ciertas condiciones, lo que obviamente siempre es golpeado (podemos pasarlo por alto por ahora).

Si se está ejecutando más de un comando, el comando cv muestra el desarrollo relacionado con todos ellos. Por ejemplo, aquí está la salida con 2 comandos ejecutándose:

cv-default-ouput-multi-commands

Obtener una estimación del rendimiento de E/S y del tiempo estimado de llegada

Aunque es útil conocer el desarrollo de un comando, es mucho más conveniente conocer otros detalles como el tiempo restante o el tiempo estimado de llegada. Para ello, el comando cv ofrece la opción de línea de comandos -w.

Por ejemplo, al ejecutar el siguiente comando

./ cv -w

se mostró la siguiente salida:

 [9287] cp/media/himanshu/ F58B-9AA9/ casper-rw 10.3%(105.2 MiB/ 1 GiB)27.9 MiB/s eta 0:00:32

Los dos últimos campos de la salida, que representan el rendimiento de E/S aproximado y el tiempo estimado de llegada, significan que la operación de copia está avanzando a un ritmo de 27,9 MB por segundo, y que tardará 32 segundos en completarse.

Bucle del comando

Al utilizar el comando cv, observará que revela la información de desarrollo en ese momento y luego termina.

Para asegurarse de que cv no termine hasta que el comando que se está vigilando termine, use la opción -m.

cv -m

Esto asegurará que el comando cv se cierre mientras los procedimientos vigilados siguen ejecutándose.

Conclusión

El comando cv podría ser una propiedad para aquellos que manejan la transferencia de archivos pesados u otras operaciones que consumen tiempo en la línea de comandos de Linux. No hace falta decir que, al ser de código abierto, se puede alterar la forma en que se compromete y funciona haciendo cambios en su código base, que es bastante pequeño y sencillo de comprender.