Có một lý do chính đáng là điều này không thể hoạt động trực tiếp với HTTP và đó là URL không phải là đường dẫn tệp, mặc dù việc sử dụng /
như một dấu phân cách có thể làm cho nó trông giống như một và đôi khi chúng tương ứng. 1
Thông thường (hoặc, trong lịch sử), các máy chủ web thường thực hiện phân cấp thư mục nhân bản (đối với một số - ví dụ: Apache - đây là loại tích phân) và thậm chí cung cấp các chỉ mục thư mục giống như một hệ thống tệp. Tuy nhiên, không có gì về giao thức HTTP yêu cầu điều này.
Đây là quan trọng, bởi vì nếu bạn muốn áp dụng một glob trên nói, tất cả mọi thứ mà là một subpath của http://foo/bar/
, trừ khi các máy chủ cung cấp một số cơ chế để cung cấp cho bạn như vậy (ví dụ như chỉ số nói trên), không có gì để áp dụng nó glob là để . Không có hệ thống tập tin ở đó để tìm kiếm. Ví dụ: chỉ vì bạn biết có các trang http://foo/bar/one.html
và http://foo/bar/two.html
không có nghĩa là bạn có thể nhận được danh sách các tệp và thư mục con thông qua http://foo/bar/
. Nó sẽ hoàn toàn nằm trong giao thức để máy chủ trả về 404 cho điều đó. Hoặc nó có thể trả về một danh sách các tập tin. Hoặc nó có thể gửi cho bạn một hình ảnh jpg tốt đẹp. Vân vân.
Vì vậy, không có tiêu chuẩn ở đây wget
có thể khai thác. AFAICT, wget hoạt động để phản ánh hệ thống phân cấp đường dẫn bằng cách chủ động kiểm tra các liên kết trong mỗi trang . Nói cách khác, nếu bạn phản chiếu đệ quy http://foo/bar/index.html
nó sẽ tải xuống index.html
và sau đó trích xuất các liên kết là một nhánh con của điều đó. 2 Công -A
tắc chỉ đơn giản là một bộ lọc được áp dụng trong quy trình này.
Nói tóm lại, nếu bạn biết những tập tin này được lập chỉ mục ở đâu đó, bạn có thể bắt đầu với việc sử dụng nó -A
. Nếu không, thì bạn đã hết may mắn.
1. Tất nhiên một URL FTP cũng là một URL. Tuy nhiên, trong khi tôi không biết nhiều về giao thức FTP, tôi đoán dựa trên bản chất của nó rằng nó có thể là một hình thức cho phép tạo khối trong suốt.
2. này có nghĩa rằng có thể có một URL hợp lệ http://foo/bar/alt/whatever/stuff/
đó sẽ không được tính vì nó không có trong bất kỳ cách nào liên quan đến bất cứ điều gì trong tập hợp các điều liên quan đến http://foo/bar/index.html
. Không giống như các hệ thống tập tin, các máy chủ web không bắt buộc phải làm cho bố cục nội dung của chúng trở nên trong suốt, cũng như không cần phải làm điều đó theo một cách trực quan rõ ràng.
curl "http://example.com/picture[1-10].jpg" -o "picture#1.jpg"