รับ md5 ระหว่าง wget


10

ฉันกำลังใช้wgetไฟล์ขนาดใหญ่ (มากกว่า 100GB) แล้วเปรียบเทียบ md5sum ของฉันกับผลรวมที่โพสต์ในที่เก็บ เชื่อหรือไม่md5sumใช้เวลาเล็กน้อยในการรันไฟล์ขนาดนี้ดังนั้นฉันต้องการได้รับผลรวมควบคู่กับการดาวน์โหลด

วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? ฉันไม่เห็นwgetตัวเลือกในการคำนวณ MD5 ระหว่างการดาวน์โหลด (อย่างน่าประหลาดใจ) ดังนั้นฉันเดาว่าการใช้งานteeจะเป็นวิธีที่จะไปใช่ไหม!


เป็นไปได้ไหม ฉันค่อนข้างมั่นใจว่าคุณต้องการไบนารีทั้งหมดเพื่อตรวจสอบแฮช ฉันสงสัยว่าแม้แต่การแบ่งเป็นขั้นตอน (เช่นแฮชตามที่ดาวน์โหลด) จะเป็นไปได้เพราะคุณอาจไม่ได้รับไฟล์ตามลำดับ ไม่ว่าจะด้วยวิธีใดฉันก็ยินดีที่จะดูว่ามีใครบางคนมีทางออกหรือไม่
n0pe

@ MaxMackie: เป็นไปได้แน่นอน: เนื่องจากฉันดาวน์โหลดไฟล์ทั้งหมด wget ในทางทฤษฎีสามารถเรียกใช้ผ่าน MD5 ไม่เป็นไร
Fixee

คำตอบ:


12

ที่จริงแล้วสิ่งนี้อาจเป็นไปได้:

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
สูงสุด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.