Disons que j'ai un fichier texte de centaines d'URL dans un emplacement, par exemple.
http://url/file_to_download1.gz
http://url/file_to_download2.gz
http://url/file_to_download3.gz
http://url/file_to_download4.gz
http://url/file_to_download5.gz
....
Quelle est la bonne façon de télécharger chacun de ces fichiers avec wget
? Je soupçonne qu'il y a une commande comme wget -flag -flag text_file.txt
Quick man wget
me donne les informations suivantes:
[..]
-i fichier
--input-file = fichier
Lire des URL à partir d'un fichier local ou externe. Si - est spécifié en tant que fichier, les URL sont lues à partir de l'entrée standard. (Utilisez ./- pour lire un fichier littéralement nommé -.)
Si cette fonction est utilisée, aucune URL ne doit être présente sur la ligne de commande. S'il existe des URL à la fois sur la ligne de commande et dans un fichier d'entrée, celles qui figurent sur les lignes de commande seront les premières à être récupérées. Si --force-html n'est pas spécifié, le fichier doit alors être composé d'une série d'URL, une par ligne.
[..]
Donc: wget -i text_file.txt
essayer:
wget -i text_file.txt
(check man wget)
Si vous souhaitez également conserver le nom de fichier d'origine, essayez avec:
wget --content-disposition --trust-server-names -i list_of_urls.txt
Si vous êtes sur OpenWrt ou utilisez une ancienne version de wget qui ne vous donne pas l'option -i
:
#!/bin/bash
input="text_file.txt"
while IFS= read -r line
do
wget $line
done < "$input"
De plus, si vous n'avez pas wget
, vous pouvez utiliser curl
ou ce que vous utilisez pour télécharger des fichiers individuels.