是否有可能从stdin管道到gzip?

Modified on: Sat, 09 Jun 2018 07:45:53 +0800

如果我运行命令s3cmd get s3://bucket/file.gz -我在屏幕上得到二进制输出。如果我尝试使用s3cmd get s3://bucket/file.gz - | zcat我得gzip: stdin: not in gzip format

我如何让zcatstdin中选择它的输入?

作者:KalenGi

最佳答案

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。或者正确下载并进行比较。

作者:,Oli

相关问答

添加新评论