Une barre de progression de longueur fixe, un nombre de fichiers ou d'octets, ou mieux encore un minuteur indiquant le temps restant estimé serait idéal.
zip
Le comportement standard semble être d'imprimer une ligne pour chaque fichier traité, mais je ne veux pas que cette information soit surchargée lorsque je zippe des milliers de fichiers. Je veux une estimation approximative du temps que cela va prendre.
J'ai essayé l' option -q
( --quiet
) en combinaison avec -dg
( --display-globaldots
) mais cela inonde simplement la sortie standard avec plusieurs lignes de points et ne donne aucune indication utile.
J'ai également essayé -qdgds 10m
comme mentionné dans la page de manuel, 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 à nouveau pour chaque nom de fichier.
Enfin, je l'ai essayé avec -q
like -qdbdc
, mais cela ne produit rien.
Curieusement, j'ai trouvé une page de manuel sur le site info-zip qui mentionne une option -de
( --display-est-to-go
) qui devrait "afficher une estimation du temps nécessaire 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, il s'agit de la dernière version stable de zip.
Il existe des versions bêta inédites sur la page info-zip sourceforge, mais je préfère ne pas confier mes données à une version bêta.
pv /path/to/file | gzip > /path/to/file.gz
tee
. Avant de démarrer zip, faites un compte total des fichiers (avecls
oufind -type f
) et pendant qu'il zippe, lisez le fichier journal pour le nombre de lignes de fichiers traités qu'il possède déjà (avecgrep
pour les bonnes lignes à regarder etwc -l
pour les lignes compte), donc vos informations de haut niveau afficheront quelque chose comme "234/76438 fichiers traités";