2011-02-09 43 views

Trả lời

192

Hãy thử các tham số sau:

-nc, --no-clobber: skip tải đó sẽ tải về file đang tồn tại.

mẫu sử dụng:

wget -nc http://example.com/pic.png 
+16

'-nc' không ngăn việc gửi yêu cầu HTTP và tải xuống tệp tiếp theo. Nó chỉ không làm bất cứ điều gì sau khi tải về tập tin nếu tập tin đã được hoàn toàn lấy. Có cách nào để ngăn chặn thực hiện yêu cầu HTTP nếu tệp đã tồn tại không? http://stackoverflow.com/questions/33203898/wget-skip-download-if-file-already-exists – ma11hew28

+5

Như đã lưu ý trong câu hỏi được liên kết, tôi không đồng ý - Nếu không sử dụng clobber và tên tệp tồn tại. Không yêu cầu HEAD ngay cả. Ngay cả khi đây không phải là trường hợp, hãy kiểm tra xem bạn có tệp để bắt đầu bằng :-) '[! -e "$ (tên cơ sở $ URL)"] && wget $ URL' – plundra

+1

Tôi nghĩ rằng tôi có thể nhận được kết quả khác nhau bởi vì tôi đang sử dụng tùy chọn '--recursive'. – ma11hew28

18

Khi chạy wget với -r hoặc -p, nhưng không -N, -nd, hoặc -nc, tái tải một tập tin sẽ dẫn đến việc bản sao mới chỉ đơn giản là ghi đè lên cái cũ.

Vì vậy, việc thêm -nc sẽ ngăn chặn hành vi này, thay vào đó khiến phiên bản gốc được giữ nguyên và mọi bản sao mới hơn trên máy chủ sẽ bị bỏ qua.

See more info at GNU.

134

Tùy chọn -nc, --no-clobber không phải là giải pháp tốt nhất là tập tin mới sẽ không được tải. Người ta phải sử dụng -N thay vì đó sẽ tải về và ghi đè lên tập tin duy nhất nếu máy chủ có một phiên bản mới hơn, vì vậy câu trả lời đúng là:

wget -N http://www.example.com/images/misc/pic.png 

Sau đó chạy wget -N với, có hoặc không có -r hoặc -p, quyết định có hay không tải xuống bản sao tệp mới hơn tùy thuộc vào dấu thời gian cục bộ và từ xa cũng như kích thước của tệp. Không thể chỉ định -nc cùng một lúc với số - N.

-N, --timestamping: Bật ghi thời gian.

+26

Khi máy chủ không được cấu hình đúng '-N' có thể bị lỗi và wget sẽ luôn tải xuống lại. Vì vậy đôi khi '-nc' là giải pháp tốt hơn. – user

+1

điều gì có thể là kịch bản áp dụng khi 'Khi máy chủ không được cấu hình đúng' sẽ xảy ra? – AjayKumarBasuthkar

+0

khi bạn tải xuống từ một vị trí đã được sao chép, thay đổi tất cả các dấu thời gian. – Robert

Các vấn đề liên quan