Obtém o tamanho comprimido da saída canalizada com o gzip?

6

Para obter o tamanho não compactado do arquivo já compactado, posso usar a opção -l no utilitário gzip:

gzip -l compressedfile.gz

No entanto, existe uma maneira de obter o tamanho do arquivo compactado se eu estiver enviando a saída? Por exemplo, usando este comando:

gzip -fc testfile > testfile.gz

ou especificamente se eu estou redirecionando a saída para algum lugar onde eu possa não ter acesso direto (servidor)

gzip -fc testfile > /dev/null
gzip -fc testfile | ssh serverip "cat > file.gz"

Isso pode ser feito? Eu preciso da razão de compressão ou do tamanho compactado.

    
por Armen 26.09.2015 / 23:34

1 resposta

7

dd para o resgate.

gzip -fc testfile | dd of=testfile.gz
0+1 records in
0+1 records out
42 bytes (42 B) copied, 0.00018711 s, 224 kB/s

ou no seu ssh exemplo

gzip -fc testfile | dd | ssh serverip "cat > file.gz"
0+1 records in
0+1 records out
42 bytes (42 B) copied, 0.00018711 s, 224 kB/s

E, em seguida, apenas analisar a saída dos comandos usando awk ou algo assim para arrancar a parte crucial da última linha.

    
por 26.09.2015 / 23:42