Bonjour

Je sais utiliser wget sur un nom de fichier complet - disons
wget https://www.le-site/toto25.txt
Par contre si je n'ai qu'un bout du nom (celui-ci peut bouger de toto25.txt à toto32.txt), comment faire ?

J'ai testé un
wget -A "toto*.txt" https://www.le-site/
mais cela ne marche pas.
Bonjour,

man wget a écrit
   Recursive Accept/Reject Options
       -A acclist --accept acclist
       -R rejlist --reject rejlist
           Specify comma-separated lists of file name suffixes or patterns to accept or reject. Note that if any of the wildcard characters, *, ?, [ or ], appear in an element of acclist or rejlist, it
           will be treated as a pattern, rather than a suffix.  In this case, you have to enclose the pattern into quotes to prevent your shell from expanding it, like in -A "*.mp3" or -A '*.mp3'.
Je comprends qu’il ne faut pas les quotes si on veut traiter comme pattern.
Donc à tester :
wget -A toto*.txt https://www.le-site/
Non, j'avais testé aussi 🙂. Merci de ta réponse.
nany a écrit
man wget a écrit
   Recursive Accept/Reject Options
       -A acclist --accept acclist
       -R rejlist --reject rejlist
           Specify comma-separated lists of file name suffixes or patterns to accept or reject. Note that if any of the wildcard characters, *, ?, [ or ], appear in an element of acclist or rejlist, it
           will be treated as a pattern, rather than a suffix.  In this case, you have to enclose the pattern into quotes to prevent your shell from expanding it, like in -A "*.mp3" or -A '*.mp3'.
Je comprends qu’il ne faut pas les quotes si on veut traiter comme pattern.
c'est le contraire, nany : « you have to enclose the pattern into quotes to prevent your shell from expanding it »

@christophe C :
et comme ça : "*toto*.txt" ?*
le motif devrait-il "inclure" le chemin ?

--
* si ça marche pas d'une façon, on essaie d'une autre. 🙂
Euh, l'option -A (ou -R) de wget ne marche qu'avec le mode récursif.
Donc plutôt :
wget -A "toto*.txt" -r -l1 https://www.le-site/
Je ne sais pas faire avec wget et des fichiers texte. Mais dans ce cas précis avec curl :
curl -O -f https://www.le-site/toto[25-32].txt
Watael a écrit c'est le contraire, nany : « you have to enclose the pattern into quotes to prevent your shell from expanding it »
Euh… On ne doit pas avoir la même interprétation de to prevent. 😛

Et bruno a raison, il faut le mode récursif.
Donc, en reprenant la ligne de bruno, mais sans les quotes (j’insiste cf. edit) :
wget -A toto*.txt -r -l1 https://www.le-site/
 
Autre exemple que j’ai testé :
wget -np -rA SHA256* https://releases.ubuntu.com/20.04.1/
[edit]
Je viens de tester mon autre exemple avec des quotes (simples ou doubles) et ça fonctionne aussi. :o
[/edit]
non ...

Je fait un test avec
wget https://www.deb-multimedia.org/pool/main/a/aacgain/aacgain_1.9-dmo4_amd64.deb
çà marche.

par contre
wget -A *.deb -r https://www.deb-multimedia.org/pool/main/a/aacgain/
ou
wget -A *.deb -r https://www.deb-multimedia.org/pool/main/a/aacgain
ou
wget -np -rA *.deb https://www.deb-multimedia.org/pool/main/a/aacgain/
ou
wget -A deb https://www.deb-multimedia.org/pool/main/a/aacgain
ne marchent pas.

Pourtant, je lis ici : https://www.gnu.org/software/wget/manual/wget.html#Types-of-Files
So, specifying ‘wget -A gif,jpg’ will make Wget download only the files ending with ‘gif’ or ‘jpg’, i.e. GIFs and JPEGs. On the other hand, ‘wget -A "zelazny*196[0-9]*"’ will download only files beginning with ‘zelazny’ and containing numbers from 1960 to 1969 anywhere within.
ma traduction : ±"il faut mettre le motif entre guillemets (ou apostrophes) pour éviter que le shell l'interprète."
parce que si le shell s'en empare, il va tenter d'effectuer le Développement de chemins, et éventuellement remplacement le motif par le(s) fichier(s) trouvé(s)
c'est comme avec les motifs (-(i)name) de find.
si ça fonctionne sans "quotes", c'est que, dans le répertoire courant, tu n'as pas de fichier(s) correspondant au motif.

quant au fonctionnement avec -r uniquement, ils auraient pu le signaler dans leman. grrr.
Watael a écrit ma traduction : ±"il faut mettre le motif entre guillemets (ou apostrophes) pour éviter que le shell l'interprète."
[…]
OK, je viens de comprendre mon erreur d’interprétation. J’avais négligé le mot shell (qui est pourtant bien en évidence).
Watael a écrit quant au fonctionnement avec -r uniquement, ils auraient pu le signaler dans leman. grrr.
On est bien d’accord.
bon j'ai trouvé :
wget -A 'aacgain*dmo4_amd64.deb' -ml inf -nd ftp://deb-multimedia.org/pool/main/a/aacgain/
j'ai remplacé https://www. par ftp://, et cela fonctionne. Aucune idée du pourquoi, puisque le passage par https marche très bien avec le nom complet. Mais pas avec le nom partiel.

-nd sert à éviter la recréation de toute la hiérarchie des répertoires (cela ne prend donc que le ou les fichiers "nus").
-m appel le mirroir (le ftp, donc)
-l inf : profondeur de recherche dans les répertoires infinie. Je ne vois pas bien pourquoi, vue que j'indique toute la hiérarchie, mais sans cela, cela ne semble pas marcher
wget -A 'aacgain*dmo4_amd64.deb' -m -nd ftp://deb-multimedia.org/pool/main/a/aacgain/
Marche aussi, et cela me semble plus logique. Plus d’histoire de profondeur infinie.
-m -nd signifie ici mirror, non-directories => demande le miroir ftp, sans création de l'arborescence.

Donc apparemment, sur un nom partiel, il faut passer par le miroir ftp, pas par l'original.
Christophe C a écrit j'ai remplacé https://www. par ftp://, et cela fonctionne.
De ce que j’ai compris, wget en http(s) télécharge le fichiers robots.txt et doit sans doute l’interpréter.
Or, sur deb-multimedia.org le fichier contient ceci :
User-Agent: *
Allow: /

User-agent: wget
User-agent: lftp
Disallow: /
Ce qui, si j’interprète bien, n’autorise pas le téléchargement avec wget. Tout au moins de manière récursive puisque le téléchargement direct d’un seul fichier fonctionne.


Et, avec ftp, il semble ne pas tenir compte de robots.txt.
On peut d’ailleurs voir ceci :
Ouverture de session en tant que anonymous… Session établie.
 

[edit]
Et ça passe bien avec https en reprenant la commande curl de bruno.
curl -O -f https://www.deb-multimedia.org/pool/main/a/aacgain/aacgain_[0-9].[0-9]-dmo4_amd64.deb
[/edit]
ok. Donc ce n'est pas vraiment wget qui fait une différence, c'est plutôt l'existence ou non de robot.txt