web-dev-qa-db-fra.com

Q: Comment afficher les progrès de la décompression?

Comment afficher les progrès, les barres ou les pourcentages lors de la décompression de fichiers volumineux?

'unzip zipfile.Zip' ne montre aucune information de progression?

5
JPX

Sans rien installer d'autre, le plus simple est d'imprimer un point pour chaque fichier extrait ou traité à l'aide de awk.

unzip -o source.Zip -d /destDirectory | awk 'BEGIN {ORS=" "} {print "."}'

S'il s'agit d'un fichier Zip volumineux, vous pouvez choisir d'imprimer un point pour chaque fichier 10 ou 20 comme ceci:

unzip -o source.Zip -d /destDirectory | awk 'BEGIN {ORS=" "} {if(NR%10==0)print "."}'

Il suffit de changer le "10" dans le NR% 10 à l’incrément souhaité.

Alternativement, vous pouvez installer la commande pv, qui ne fonctionne pas très bien avec unzip, mais donne une vue d'ensemble qui n'est pas totalement terrible.

Installez pv:

Sudo apt install pv

Décompressez avec pv:

unzip -o source.Zip -d /destDirectory | pv -l >/dev/null

Cela montre une sortie qui ressemble à ceci:

28.2k 0:00:03 [9.36k/s] [        <=>                       ]

Cependant, en raison de la manière dont les fichiers Zip sont traités, une barre de progression ne sera pas affichée de manière significative, comme nous le souhaiterions.

7
Scott

Vous pouvez créer un wrapper simple pour cela:

function punzip {
   unzip $1 | pv -l -s $(unzip -Z -1 $1 | wc -l) > /dev/null;
}

Et puis utilisez-le comme suit:

$ punzip file.Zip

Cela peut être utile s'il y a beaucoup de petits fichiers dans une archive. Mais si les fichiers sont volumineux, il vaut mieux utiliser quelque chose comme ceci:

for f in $(unzip -Z -1 file.Zip);
do
    unzip -o -c file.Zip $f \
    | pv -s $(unzip -Z file.Zip $f | awk '{print $4}') \
    > $f
done

Il montrera la barre de progression pour chaque fichier individuel.

1
German Lashevich

Une autre alternative pour afficher les progrès de Zip/Unzip consiste à utiliser le programme 7Zip. Dans la dernière version 16.02 (publiée le 21/05/2016), elle indique la progression en pourcentage.

Les packages p7Zip de la version 16.02 sont disponibles dans le référentiel Ubutuntu depuis la publication artuful/16.10. Les versions plus anciennes d’Ubuntu n’ont que p7Zip version 9.20.1 sans indicateur de progression dans le référentiel. J'ai installé manuellement la version 16.02 de pzip dans Ubuntu xenial/16.04 à partir du référentiel bionique, il ne semble exister aucune autre dépendance (p7Zip, p7Zip-full et p7Zip-rar).

7z x source.Zip -o/destDirectory

Notez qu'il ne doit y avoir aucun espace entre le "-o" et le nom du répertoire de destination.

0
palto