在wget中获取md5


10

我正在存储wget大量文件(超过100GB),然后将md5sum与存储库中发布的总和进行比较。信不信由你,md5sum在这种大小的文件上运行会花费很短的时间,所以我想在下载的同时获得总和。

最好的方法是什么?我没有看到wget在下载过程中计算MD5 的选项(令人惊讶地),所以我想使用tee它将是一种方法?


这可能吗?我很确定您需要整个二进制文件来检查哈希。我怀疑即使将其拆分为多个步骤(即下载的哈希)也可能会看到,因为您可能没有按顺序接收文件。无论哪种方式,我都会很高兴看到某人是否有解决方案。
2011年

@MaxMackie:绝对有可能:由于我正在下载整个文件,因此wget理论上可以通过MD5运行它。联合国,事实并非如此。
Fixee 2011年

Answers:


11

实际上,这可能是可能的:

wget -O - http://example.com/file | tee file | md5sum > file.md5

但是,这假定您事先在文件中包含哈希。


1
看起来不错,我不知道它如何假设“事先已保存在文件中”。它只是在您进行操作时生成总和,并将其写入一个文件中,以供以后比较。唯一的问题可能是内存开销。
卡莱布

2
@Caleb什么内存开销?md5sum(以及任何其他常见的哈希算法,例如SHA系列)在恒定内存中运行。它们旨在在流上工作。
吉尔(Gilles)'所以

最后还有一个附加awk符号,您可以自动删除`-` a结尾。wget -O - "https://example.org/myFile.jpg" | tee file | md5sum | awk '{print $1}' > md5.txt
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.