Действительно ли возможно передать по каналу от stdin до gzip?

Если я выполняю команду s3cmd get s3://bucket/file.gz - Я получаю двоичный выход на экране. Если я пытаюсь передать это по каналу к gzip с s3cmd get s3://bucket/file.gz - | zcat Я добираюсь gzip: stdin: not in gzip format.

Как я могу добраться zcat для выбора это вводится от stdin?

8
задан 10 March 2016 в 04:51

1 ответ

gzip и его вспомогательные команды все чтение от STDIN по умолчанию. Мы можем протестировать это с действительно простым тестом:

$ echo testing | gzip | zcat
testing

Или что-то более экзотическое для доказательства это не было счастливой случайностью:

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

, Который намекает мне, что Ваш s3cmd вывод грязен или уродлив в некотором роде. Попытайтесь перенаправить в файл (скорее tha обеспечение реального имени файла) и затем рассмотрение вывода в чем-то как head. Или загрузите его правильно и сравните.

12
ответ дан 23 November 2019 в 05:34

Другие вопросы по тегам:

Похожие вопросы: