¿Es posible canalizar desde stdin a gzip?

11

Si ejecuto el comando s3cmd get s3://bucket/file.gz -obtengo salida binaria en la pantalla. Si trato de canalizar esto a gzip con s3cmd get s3://bucket/file.gz - | zcatme sale gzip: stdin: not in gzip format.

¿Cómo puedo obtener zcatsu entrada stdin?

KalenGi
fuente

Respuestas:

17

gzipy sus comandos auxiliares todos leen de STDIN por defecto. Podemos probar esto con una prueba realmente simple:

$ echo testing | gzip | zcat
testing

O algo más exótico para demostrar que no fue una casualidad:

$ 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  -

Eso me sugiere que su s3cmdsalida está sucia o malformada de alguna manera. Intente redirigir al archivo (en lugar de proporcionar un nombre de archivo real) y luego mirar la salida en algo así head. O descárguelo correctamente y compare.

Oli
fuente
Creo que tienes razón sobre el s3cmdresultado. Cambié mi enfoque y usé en su curllugar.
KalenGi