Es gibt einen guten Grund, warum dies nicht direkt mit HTTP funktioniert, und das heißt, dass eine URL kein Dateipfad ist, obwohl die Verwendung /
als Trennzeichen dazu führen kann, dass sie wie ein solcher aussieht, und sie stimmen manchmal überein. 1
Herkömmlicherweise (oder historisch) spiegeln Webserver häufig Verzeichnishierarchien (für einige - z. B. Apache - ist dies eine Art Integral) und stellen sogar Verzeichnisindizes ähnlich einem Dateisystem bereit. Für das HTTP-Protokoll ist dies jedoch nicht erforderlich.
Dies ist von Bedeutung, denn wenn man auf etwa ein glob anwenden wollen, alles , was ein subpath von ist http://foo/bar/
, es sei denn , der Server einen Mechanismus liefert Ihnen mit einer solchen (zB dem oben erwähnten Index) zur Verfügung zu stellen, gibt es nichts , um es den glob anwenden zu . Es ist kein Dateisystem zum Durchsuchen vorhanden. Zum Beispiel, nur weil Sie wissen , dass es Seiten http://foo/bar/one.html
und http://foo/bar/two.html
bedeutet nicht , dass Sie eine Liste von Dateien und Unterverzeichnisse über bekommen kann http://foo/bar/
. Es wäre völlig im Protokoll, wenn der Server dafür 404 zurückliefe. Oder es könnte eine Liste von Dateien zurückgeben. Oder es könnte Ihnen ein schönes JPG-Bild schicken. Usw.
Es gibt hier also keinen Standard, den wget
man ausnutzen kann. AFAICT, wget spiegelt eine Pfadhierarchie, indem Links auf jeder Seite aktiv untersucht werden . Mit anderen Worten, wenn Sie rekursiv spiegeln , werden Links http://foo/bar/index.html
heruntergeladen index.html
und extrahiert, die ein Unterpfad davon sind. 2 Der -A
Schalter ist einfach ein Filter, der in diesem Prozess angewendet wird.
Kurz gesagt, wenn Sie wissen, dass diese Dateien irgendwo indiziert sind, können Sie damit beginnen -A
. Wenn nicht, dann haben Sie Pech.
1. Natürlich ist eine FTP-URL auch eine URL. Obwohl ich nicht viel über das FTP-Protokoll weiß, würde ich davon ausgehen, dass es eine Form hat, die transparentes Globbing ermöglicht.
2. Dies bedeutet, dass es eine gültige URL geben kann http://foo/bar/alt/whatever/stuff/
, die nicht enthalten ist, da sie in keiner Weise mit etwas in der Menge der verknüpften Dinge verknüpft ist http://foo/bar/index.html
. Im Gegensatz zu Dateisystemen sind Webserver nicht verpflichtet, das Layout ihrer Inhalte transparent zu machen, und müssen dies auch nicht auf intuitive Weise tun.
curl "http://example.com/picture[1-10].jpg" -o "picture#1.jpg"