Est-il possible de diriger de stdin vers gzip?

11

Si j'exécute la commande, s3cmd get s3://bucket/file.gz -j'obtiens une sortie binaire à l'écran. Si j'essaie de diriger ceci vers gzip avec s3cmd get s3://bucket/file.gz - | zcatje reçois gzip: stdin: not in gzip format.

Comment puis-je obtenir zcatson entrée stdin?

KalenGi
la source

Réponses:

17

gzipet ses commandes auxiliaires sont toutes lues depuis STDIN par défaut. Nous pouvons tester cela avec un test très simple:

$ echo testing | gzip | zcat
testing

Ou quelque chose de plus exotique pour prouver que ce n'était pas un coup de chance:

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

Cela me suggère que votre s3cmdsortie est sale ou mal formée d'une manière ou d'une autre. Essayez de rediriger vers un fichier (plutôt que de fournir un vrai nom de fichier), puis regardez la sortie dans quelque chose comme head. Ou téléchargez-le correctement et comparez.

Oli
la source
Je pense que vous avez raison sur la s3cmdsortie. J'ai changé d'approche et utilisé à la curlplace.
KalenGi