Uma barra de progresso de tamanho fixo, uma contagem de arquivos ou bytes ou, melhor ainda, um cronômetro mostrando o tempo estimado restante seria o ideal.
zip
O comportamento padrão de parece ser imprimir uma linha para cada arquivo processado, mas não quero que essa informação seja sobrecarregada quando zipar milhares de arquivos. Quero uma estimativa de quanto tempo vai demorar.
Tentei a opção -q
( --quiet
) em combinação com -dg
( --display-globaldots
), mas isso apenas inunda o stdout com várias linhas de pontos e não fornece nenhuma indicação útil.
Eu também tentei -qdgds 10m
conforme mencionado na página de manual, mas obtive o mesmo resultado.
Eu tentei -db
( --display-bytes
) e -dc
( --display-counts
), mas não parece haver uma opção global; portanto, ela a imprime novamente para cada nome de arquivo.
Por fim, tentei junto com o -q
like -qdbdc
, mas isso não gera nada.
Curiosamente, encontrei uma página de manual no site info-zip que menciona uma opção -de
( --display-est-to-go
) que deve "Exibir uma estimativa do tempo para concluir a operação de arquivamento".
Parece exatamente o que eu quero, mas o problema é que minha versão do zip
não possui esse recurso. Estou usando o Ubuntu 14.04.1 64bit, bash-4.3.30 (1) e zip-3.00. Segundo a Wikipedia, esta é a última versão estável do zip.
Existem versões beta não lançadas na página info-zip sourceforge, mas prefiro não confiar meus dados a uma versão beta.
pv /path/to/file | gzip > /path/to/file.gz
tee
. Antes de iniciar o zip, faça uma contagem total dos arquivos (comls
oufind -type f
) e, enquanto estiver compactando, leia o arquivo de log para o número de linhas de arquivos processados que ele já possui (comgrep
as linhas corretas para examinar ewc -l
as linhas count), para que suas informações de alto nível mostrem algo como "234/76438 arquivos processados";