Una barra di avanzamento a lunghezza fissa, un conteggio di file o byte, o meglio un timer che mostri il tempo rimanente stimato sarebbe l'ideale.
zip
Il comportamento standard sembra essere quello di stampare una riga per ogni file elaborato, ma non voglio quel sovraccarico di informazioni quando comprimo migliaia di file. Voglio una stima di quanto tempo ci vorrà.
Ho provato l' opzione -q
( --quiet
) in combinazione con -dg
( --display-globaldots
) ma questo inonda lo stdout con più linee di punti e non fornisce indicazioni utili.
Ho anche provato -qdgds 10m
come menzionato nella pagina man, ma ho ottenuto lo stesso risultato.
Ho quindi provato -db
( --display-bytes
) e -dc
( --display-counts
) ma non sembra esserci un'opzione globale, quindi la stampa nuovamente per ogni nome file.
Infine, l'ho provato insieme a -q
like -qdbdc
, ma questo non ha prodotto nulla.
Stranamente, ho trovato una pagina man sul sito di zip che menziona un'opzione -de
( --display-est-to-go
) che dovrebbe "Visualizzare una stima del tempo necessario per completare l'operazione di archiviazione".
Sembra esattamente quello che voglio, ma il problema è che la mia versione di zip
non ha quella funzione. Sto usando Ubuntu 14.04.1 64 bit, bash-4.3.30 (1) e zip-3.00. Secondo Wikipedia, questa è l'ultima versione stabile di zip.
Esistono versioni beta inedite nella pagina sourceforge di info-zip, ma preferirei non affidare i miei dati a una versione beta.
pv /path/to/file | gzip > /path/to/file.gz
tee
. Prima di avviare zip, fare un conteggio totale dei file (conls
ofind -type f
) e mentre è zippato, leggere il file di registro per il numero di linee di file elaborati che ha già (congrep
per le linee giuste da guardare ewc -l
per le linee conta), quindi le tue informazioni di alto livello mostreranno qualcosa come "234/76438 file elaborati";