Чи можна трубувати від stdin до gzip?


12

Якщо я запускаю команду, s3cmd get s3://bucket/file.gz -я отримую бінарний вихід на екран. Якщо я спробую передати це на gzip, s3cmd get s3://bucket/file.gz - | zcatя отримаю gzip: stdin: not in gzip format.

Як я можу змусити zcatвибрати свій внесок stdin?

Відповіді:


17

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вихід певним чином забруднений чи неправильний. Спробуйте переспрямувати файл (радше надаючи справжнє ім’я файлу), а потім подивіться на вихід у чомусь подібному head. Або завантажте його належним чином і порівняйте.


Я думаю, ти маєш рацію щодо s3cmdрезультатів. Я змінив свій підхід і застосував curlнатомість.
KalenGi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.