này được ví dụ đơn giản chạy wget:Bỏ qua tải xuống nếu tệp tồn tại trong wget?
wget http://www.example.com/images/misc/pic.png
nhưng làm thế nào để làm cho wget skip tải nếu pic.png
đã có sẵn?
này được ví dụ đơn giản chạy wget:Bỏ qua tải xuống nếu tệp tồn tại trong wget?
wget http://www.example.com/images/misc/pic.png
nhưng làm thế nào để làm cho wget skip tải nếu pic.png
đã có sẵn?
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
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.
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.
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
đ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
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âu trả lời tôi đang tìm kiếm là https://unix.stackexchange.com/a/9557/114862.
khi sử dụng cờ
-c
khi tệp cục bộ có kích thước lớn hơn hoặc bằng phiên bản máy chủ sẽ tránh tải xuống lại.
'-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
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
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