Có được md5 trong thời gian wget


10

Tôi đang sử dụng wgetcác tệp lớn (hơn 100 GB) và sau đó so sánh md5sum của tôi với số tiền được đăng trong kho lưu trữ. Dù bạn có tin hay không, md5summất một khoảng thời gian không cần thiết để chạy trên một tệp có kích thước này, vì vậy tôi muốn có được số tiền song song với việc tải xuống.

Cách tốt nhất để làm điều này là gì? Tôi không thấy wgettùy chọn để tính MD5 trong khi tải xuống (thật đáng ngạc nhiên) vì vậy tôi đoán sử dụng teesẽ là cách tốt nhất?!


Điều này có thể không? Tôi khá chắc chắn rằng bạn cần toàn bộ nhị phân để kiểm tra hàm băm. Tôi nghi ngờ thậm chí chia nó thành các bước (tức là băm khi nó được tải xuống) có thể thấy vì bạn có thể không nhận được tệp theo thứ tự. Dù bằng cách nào, tôi sẽ rất vui nếu thấy ai đó có giải pháp.
n0pe

@MaxMackie: Hoàn toàn có thể: vì tôi đang tải xuống toàn bộ tệp, về mặt lý thuyết, wget có thể chạy nó thông qua MD5. Không, nó không.
Fixee

Câu trả lời:


11

Trên thực tế, điều này có thể là có thể:

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

Tuy nhiên, điều này giả sử bạn có hàm băm trong một tệp trước đó.


1
Điều này có vẻ ổn, và tôi không thấy nó giả định như thế nào về việc có "có trong một tập tin trước". Nó chỉ tạo ra tổng khi bạn đi cùng và ghi nó vào một tệp mà bạn có thể sử dụng để so sánh sau này. Cái bắt duy nhất có thể là bộ nhớ trên đầu.
Caleb

2
@Caleb Bộ nhớ nào? md5sum(và bất kỳ thuật toán băm phổ biến nào khác như họ SHA) hoạt động trong bộ nhớ không đổi. Chúng được thiết kế để hoạt động trên các luồng.
Gilles 'SO- ngừng trở nên xấu xa'

với một bổ sung awkở cuối, bạn có thể loại bỏ `-` một kết thúc tự động. wget -O - "https://example.org/myFile.jpg" | tee file | md5sum | awk '{print $1}' > md5.txt
Tối đa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.