É possível canalizar de stdin para gzip?

6

Se eu executar o comando s3cmd get s3://bucket/file.gz - , recebo a saída binária na tela. Se eu tentar canalizar isso para gzip com s3cmd get s3://bucket/file.gz - | zcat , recebo gzip: stdin: not in gzip format .

Como posso obter zcat para selecionar sua entrada em stdin ?

    
por KalenGi 10.03.2016 / 12:51

1 resposta

6

gzip e seus comandos auxiliares são lidos de STDIN por padrão. Podemos testar isso com um teste muito simples:

$ echo testing | gzip | zcat
testing

Ou algo mais exótico para provar que não foi um acaso:

$ dd if=/dev/urandom of=bigfile bs=1024 count=102400
102400+0 records in
102400+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 6.42114 s, 16.3 MB/s

$ sha1sum bigfile 
25b4832d3e738e70721d86695ea7a767a3afb229  bigfile

$ cat bigfile | gzip | zcat | sha1sum 
25b4832d3e738e70721d86695ea7a767a3afb229  -

Isso sugere que sua saída s3cmd está suja ou malformada de alguma forma. Tente redirecionar para o arquivo (em vez disso, fornecendo um nome de arquivo real) e, em seguida, olhando para a saída em algo como head . Ou faça o download corretamente e compare.

    
por Oli 10.03.2016 / 13:04

Tags