Una barra de progreso de longitud fija, un conteo de archivos o bytes, o mejor aún, un temporizador que muestre el tiempo restante estimado sería ideal.
zip
El comportamiento estándar parece ser imprimir una línea para cada archivo procesado, pero no quiero que esa información se sobrecargue cuando comprimo miles de archivos. Quiero una estimación de cuánto tiempo llevará.
Probé la opción -q
( --quiet
) en combinación con -dg
( --display-globaldots
) pero eso solo inunda stdout con múltiples líneas de puntos y no da ninguna indicación útil.
También intenté -qdgds 10m
como se menciona en la página del manual, pero obtuve el mismo resultado.
Luego probé -db
( --display-bytes
) y -dc
( --display-counts
) pero no parece haber una opción global, por lo que nuevamente la imprime para cada nombre de archivo.
Por último, lo probé junto con -q
like -qdbdc
, pero eso simplemente no genera nada.
Curiosamente, encontré una página de manual en el sitio info-zip que menciona una opción -de
( --display-est-to-go
) que debería "Mostrar una estimación del tiempo para finalizar la operación de archivo".
Eso suena exactamente como lo que quiero, pero el problema es que mi versión de zip
no tiene esa característica. Estoy usando Ubuntu 14.04.1 64bit, bash-4.3.30 (1) y zip-3.00. Según Wikipedia, esta es la última versión estable de zip.
Hay versiones beta inéditas en la página info-zip sourceforge, pero prefiero no confiar mis datos a una versión beta.
pv /path/to/file | gzip > /path/to/file.gz
tee
. Antes de comenzar el zip, haga un recuento total de los archivos (conls
ofind -type f
) y mientras está comprimiendo, lea el archivo de registro para ver la cantidad de líneas de archivos procesados que ya tiene (congrep
las líneas correctas para mirar ywc -l
las líneas contar), por lo que su información de alto nivel mostrará algo así como "234/76438 archivos procesados";