Lorsque j'utilise zip, comment puis-je afficher la progression globale sans inonder la command line?

Une barre de progression de longueur fixe, un file ou un nombre d'octets, ou mieux encore une timer indiquant le time estimé restant serait idéal.

Le comportement standard de zip semble être d'imprimer une ligne pour chaque file traité, mais je ne veux pas cette surcharge d'information quand je zipper des milliers de files. Je veux une estimation combien de time cela va prendre.

J'ai essayé l'option -q ( --quiet ) en combinaison avec -dg ( --display-globaldots ) mais qui --display-globaldots que stdout avec plusieurs lignes de points et ne donne aucune indication utile.

J'ai aussi essayé -qdgds 10m comme mentionné dans la page man, mais j'ai obtenu le même résultat.

J'ai ensuite essayé -db ( --display-bytes ) et -dc ( --display-counts ) mais il ne semble pas y avoir d'option globale, donc il l'imprime de nouveau pour chaque nom de file.

Enfin, je l'ai essayé avec -q comme -qdbdc , mais cela ne produit rien.

Curieusement, j'ai trouvé une page man sur le site info-zip qui mentionne une --display-est-to-go -de ( --display-est-to-go ) qui devrait afficher une estimation du time --display-est-to-go pour terminer l'opération d'archivage.

Cela ressemble exactement à ce que je veux, mais le problème est que ma version de zip n'a pas cette fonctionnalité. J'utilise Ubuntu 14.04.1 64bit, bash-4.3.30 (1) et zip-3.00. Selon Wikipedia, c'est la dernière version stable de zip.

Il existe des versions bêta inédites sur la page sourceforge d'info-zip, mais je préfère ne pas confier mes données à une version bêta.

zip peut compresser datatables vers la sortie standard. Par conséquent, vous pouvez le combiner avec d'autres outils comme pv :

 zip -qr - [folder] | pv -bep -s $(du -bs [folder] | awk '{print $1}') > [file.zip] 

Supprimez l'une des options -bep pour votre commodité.