wget中にmd5を取得する


10

私はwget巨大なファイル(100GB以上)を使用していて、私のmd5sumをリポジトリに投稿された合計と比較しています。信じられないかもmd5sumしれませんが、このサイズのファイルで実行するにはかなりの時間がかかるので、ダウンロードと並行して合計を取得します。

これを行う最良の方法は何ですか?wget(驚くほど)ダウンロード中にMD5を計算するオプションが表示されないのでtee、使用するのが正しいと思いますか?


これは可能ですか?ハッシュをチェックするにはバイナリ全体が必要だと思います。ファイルを順番に受信していない可能性があるので、ファイルをステップに分割する(つまり、ダウンロードされるときにハッシュする)ことも可能だと思います。いずれにせよ、誰かが解決策を持っているかどうかを確認させていただきます。
n0pe 2011

@MaxMackie:間違いなく可能です。ファイル全体をダウンロードしているので、wgetは理論的にはMD5で実行できます。Unf、それはしません。
Fixee 2011

回答:


11

実際、これは可能かもしれません:

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

ただし、事前にファイルにハッシュがあることを前提としています。


1
これは問題なく見えますが、「ファイル内に事前にある」ことを想定していることはわかりません。合計を生成して、後で比較するために使用できるファイルに書き込むだけです。唯一の問題は、メモリのオーバーヘッドかもしれません。
カレブ

2
@Calebどんなメモリオーバーヘッド?md5sum(およびSHAファミリーなどの他の一般的なハッシュアルゴリズム)は、定数メモリで動作します。ストリームで動作するように設計されています。
Gilles「SO-邪悪なことをやめなさい」

awk最後に追加を使用すると、自動的に `-`を削除できます。wget -O - "https://example.org/myFile.jpg" | tee file | md5sum | awk '{print $1}' > md5.txt
最大
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.