Il y a une bonne raison pour que cela ne fonctionne pas directement avec HTTP: une adresse URL n'est pas un chemin de fichier, bien que son utilisation en /
tant que délimiteur puisse lui donner l'apparence d'un chemin et qu'elles correspondent parfois. 1
Traditionnellement (ou historiquement), les serveurs Web reproduisent souvent les hiérarchies de répertoires (pour certains, comme Apache, par exemple, cela fait partie intégrante) et fournissent même des index de répertoires similaires à ceux d'un système de fichiers. Cependant, rien dans le protocole HTTP ne l’exige.
Ceci est important, parce que si vous voulez appliquer un glob sur disons, tout ce qui est un sous - chemin http://foo/bar/
, à moins que le serveur fournit un mécanisme pour vous fournir ces (par exemple l'indice précité), il n'y a rien à appliquer le glob à . Il n'y a pas de système de fichiers à rechercher. Par exemple, ce n'est pas parce que vous savez qu'il existe des pages http://foo/bar/one.html
et http://foo/bar/two.html
que vous pouvez obtenir une liste de fichiers et de sous-répertoires via http://foo/bar/
. Il serait complètement dans le protocole pour le serveur de retourner 404 pour cela. Ou il pourrait retourner une liste de fichiers. Ou il pourrait vous envoyer une belle image jpg. Etc.
Donc, il n'y a pas de standard ici qui wget
peut exploiter. AFAICT, wget fonctionne pour refléter une hiérarchie de chemins en examinant activement les liens dans chaque page . En d'autres termes, si vous mettez en miroir, de façon récursive, les http://foo/bar/index.html
téléchargements index.html
, puis extrayez les liens qui en sont un sous-chemin. 2 Le -A
commutateur est simplement un filtre qui est appliqué dans ce processus.
En bref, si vous savez que ces fichiers sont indexés quelque part, vous pouvez commencer par utiliser -A
. Sinon, vous n'avez pas de chance.
1. Bien sûr, une URL FTP est aussi une URL. Cependant, bien que je connaisse mal le protocole FTP, j’imagine que, de par sa nature, il pourrait avoir une forme permettant une suppression transparente.
2. Cela signifie qu’il pourrait y avoir une URL valide http://foo/bar/alt/whatever/stuff/
qui ne sera pas incluse car elle n’est en aucun cas liée à quoi que ce soit dans l’ensemble des éléments liés http://foo/bar/index.html
. Contrairement aux systèmes de fichiers, les serveurs Web ne sont pas obligés de rendre la mise en page de leur contenu transparente, pas plus qu'ils ne doivent le faire de manière intuitivement évidente.
curl "http://example.com/picture[1-10].jpg" -o "picture#1.jpg"