web-dev-qa-db-fra.com

PV (barre de progression) et gzip

Pourquoi n'est-ce pas possible?

pv ${dest_file} | gzip -1

pv est une barre de progression

erreur

gzip: compressed data not written to a terminal. Use -f to force compression.
For help, type: gzip -h
   0 B 0:00:00 [   0 B/s] [>                                   ]  0%

Cela marche

pv ${file_in} | tar -Jxf - -C /outdir
10
clarkk

Qu'essayez-vous de réaliser est de voir la barre de progression du processus de compression. Mais ce n'est pas possible en utilisant pv. Cela ne montre que des progrès de transfert que vous pouvez obtenir par quelque chose comme celui-ci (de toute façon, c'est le premier lien dans Google):

pv input_file | gzip > compressed_file

La barre de progression fonctionnera rapidement, puis il attendra la compression, ce qui n'est plus observable en utilisant pv.

Mais vous pouvez faire cette autre voie autour et regarder le flux de sortie, Bot ici Vous ne pourrez pas voir les progrès réels, car pv ne connaît pas la taille réelle du fichier compressé:

gzip input_file | pv > compressed_file

Le meilleur que j'ai trouvé jusqu'à présent est celui de Commandlinef Même avec limitation de taux et compression des répertoires:

$D=directory
tar pcf - $D | pv -s $(du -sb $D | awk '{print $1}') --rate-limit 500k | gzip > target.tar.gz
23
Jakuje

Oui, il est un peu possible d'utiliser les lignes du fichier, pas des octets. Vous obtenez une barre de progression suffisante précise:

cat input_file | pv -ls $( wc -l input_file ) | gzip -c -- > compressed_file
4
Archangel

Vous pouvez utiliser 7Z plutôt pour obtenir un pourcentage de progrès:

$ 7z a spaCy.tar.gz spaCy.tar 

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7Zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,8 CPUs Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (906E9),ASM,AES-NI)

Open archive: spaCy.tar.gz
--
Path = spaCy.tar.gz
Type = gzip
Headers Size = 20

Scanning the drive:
1 file, 326451200 bytes (312 MiB)

Updating archive: spaCy.tar.gz

Items to compress: 1

 32% U spaCy.tar   
1
qwr