XBM*_*ser 30 command-line bash
我尝试检查最新的 Firefox 并希望在一个 TXT 文件中获取所有哈希值。
我尝试做的是:
sha1sum firefox.tar.gz > sha.txt
Run Code Online (Sandbox Code Playgroud)
我也尝试:
md5sum firefox.tar.gz > sha.txt | sha1sum firefox.tar.gz > sha.txt | sha512sum firefox.tar.gz > sha.txt
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,只有最后一个 sha512 被打印到 sha.txt。
我究竟做错了什么?请问有人可以帮我解决这个问题吗?
hee*_*ayl 41
正如其他人已经指出>(覆盖)和>>(附加)重定向运算符之间的区别,我将给出几个解决方案。
您可以使用 的命令分组{}功能bash将所有命令的输出发送到一个文件中:
{ sha1sum foo.txt ;sha512sum foo.txt ;md5sum foo.txt ;} >checksum.txt
Run Code Online (Sandbox Code Playgroud)或者,您可以在子 shell 中运行命令():
( sha1sum foo.txt ;sha512sum foo.txt ;md5sum foo.txt ) >checksum.txt
Run Code Online (Sandbox Code Playgroud)您需要使用附加重定向器>>而不是>后续命令,例如
sha1sum zeromq-4.1.2.tar.gz > sha.txt
md5sum zeromq-4.1.2.tar.gz >> sha.txt
sha512sum zeromq-4.1.2.tar.gz >> sha.txt
Run Code Online (Sandbox Code Playgroud)
请参阅Appending Redirected Outputbash 手册页 ( man bash) 的部分。