首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将"wget -qO- whatever.tar.gz“的输出指向tar和sha256sum?

如何将"wget -qO- whatever.tar.gz“的输出指向tar和sha256sum?
EN

Unix & Linux用户
提问于 2021-12-03 21:00:25
回答 1查看 404关注 0票数 0

下面创建包含散列的csfile,解压缩go1.17.4.linux-amd64.tar.gz 从戈朗官方网站下载,打印校验和到stdout,然后删除不再需要的csfile

代码语言:javascript
复制
wget -qO- https://go.dev/dl/go1.17.4.linux-amd64.tar.gz|tee >(sha256sum>csfile) |tar -xz && cat csfile && rm csfile

我希望在不创建像csfile这样的文件的情况下,将校验和解压缩在屏幕上和存档中。是可行的吗?基于一些 研究认为,我尝试了以下两个一行程序(但没有效果--尽管压缩文件被解压缩,二进制输出被显示到屏幕上):

代码语言:javascript
复制
wget -qO- https://go.dev/dl/go1.17.4.linux-amd64.tar.gz|tee >(sha256sum) >(sudo tar -xz>/dev/null)
wget -qO- https://go.dev/dl/go1.17.4.linux-amd64.tar.gz|tee >(sudo tar -xz>/dev/null) >(sha256sum)

另一方面,以下两个一行程序都不会更新归档文件,但它们都会在输出二进制输出后生成校验和:

代码语言:javascript
复制
wget -qO- https://go.dev/dl/go1.17.4.linux-amd64.tar.gz|tee >(xargs tar -xz) >(sha256sum)
wget -qO- https://go.dev/dl/go1.17.4.linux-amd64.tar.gz|tee >(sudo xargs tar -xz>/dev/null) >(sha256sum)

为什么二进制输出会出现在屏幕上?它是由tar还是sha256sum喷出来的?如果可行的话,我宁愿避免使用sudo。如何将wget的输出指向tarsha256sum

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-12-03 21:23:07

您可以将sha256sum的输出重定向到/dev/tty,以便在屏幕上打印它,如下所示:

代码语言:javascript
复制
wget -qO- https://go.dev/dl/go1.17.4.linux-amd64.tar.gz|tee >(sha256sum > /dev/tty) |tar -xz

下面的代码看起来也有效,只需将tar放在进程替换和管道后面的sha256sum中即可。在我的电脑上,二进制输出不会被喷到屏幕上。

代码语言:javascript
复制
wget -qO- https://go.dev/dl/go1.17.4.linux-amd64.tar.gz | tee >(tar -xz) | sha256sum

我不知道为什么会起作用,只是试错而已。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/680079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档