Descompactando aparecendo para falhar

0

Eu corro:

~$ gzip -d Mom.img.gz
^C
~$

Eu criei Mom.img.gz canalizando um dd para gzip . Eu deveria estar vendo saída? Eu tentei com a GUI também, e a barra de progresso não se moveu.

    
por PyRulez 01.04.2014 / 03:49

2 respostas

3

Não, você normalmente não verá nenhuma saída de gzip ao usá-lo para compactar ou descompactar.

Exemplos

Digamos que eu tenha um arquivo de amostra.

$ ll | grep a.img
-rw-rw-r--.   1 saml saml   1474560 Mar 31 21:57 a.img
comprimindo
$ gzip a.img 
$
$ ll | grep a.img
-rw-rw-r--.   1 saml saml    944497 Mar 31 21:57 a.img.gz
descomprimindo
$ gzip -d a.img.gz 
$
$ ll | grep a.img
-rw-rw-r--.   1 saml saml   1474560 Mar 31 21:57 a.img

Se você quiser um pouco mais de feedback enquanto gzip estiver fazendo a sua parte, você pode incluir a opção --verbose ou -v para obter um pouco mais de resultados.

$ gzip -vd a.img.gz 
a.img.gz:    35.9% -- replaced with a.img

Por que não há feedback?

Se você acha que gzip não está funcionando, é provável que esteja e esteja funcionando perfeitamente. Você pode observar o processo para confirmar que ele está realmente fazendo algo útil abrindo outro shell e executando um comando como top ou htop para ver o que o processo gzip está fazendo enquanto é executado.

Além disso, você pode usar um comando como este para "assistir".

$ watch "ps -eaf | grep [g]zip"

Você também pode usar a ferramenta de linha de comando pidstat para "assistir" processos:

$ pidstat -r 2 -C thunder
Linux 3.13.6-100.fc19.x86_64 (greeneggs.bubba.net)  03/31/2014  _x86_64_    (4 CPU)

10:26:24 PM   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
10:26:26 PM  1000      3323     24.38      0.00 1572252 323264   4.06  thunderbird

10:26:26 PM   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
10:26:28 PM  1000      3323    138.50      0.00 1572252 322720   4.05  thunderbird

Acima, estou assistindo meu cliente de e-mail, thunderbird exibindo um resumo da carga da CPU a cada 2 segundos.

    
por 01.04.2014 / 04:02
0

Você também pode usar pv , o "visualizador de canais", para monitorar a quantidade e a velocidade com que os dados são processados e / ou gerados por um processo. No Debian / Ubuntu, você precisará instale o pacote pv para usá-lo.

pv a.img.gz | gzip -cd > a.img

dará a você o throughput total e atual de gzip , bem como uma barra de progresso e estimar quando gzip terminará de processar o arquivo de entrada (supondo que sua velocidade permanecerá a mesma).

Você também pode monitorar a saída…

gzip -cd a.img.gz | pv > a.img

… ou até mesmo combinar os dois comandos e monitorar entrada e saída ao mesmo tempo:

pv -cN input a.img.gz | gzip -cd | pv -cN output > a.img

(Nesse caso, você precisa da opção pv -c para evitar que os dois indicadores de progresso sobrescrevam uns aos outros e -N para dar a eles nomes (arbitrários) para saber qual é qual.)

    
por 02.04.2014 / 17:16