La commande wget est un outil incontournable pour tous ceux qui travaillent
en ligne de commande sous Linux. Elle permet de télécharger facilement des
fichiers depuis Internet, que ce soit via HTTP, HTTPS ou FTP. Grâce à sa
simplicité d’utilisation et à sa robustesse, wget s’impose comme la solution
idéale pour récupérer des fichiers, des pages web, ou même des sites entiers,
sans interface graphique.
Contrairement à curl, qui excelle dans
l’interaction avec des APIs et la manipulation fine des requêtes HTTP, wget
se distingue par sa capacité à gérer des téléchargements complexes : reprise
automatique en cas d’interruption, téléchargement récursif de sites web, gestion
des authentifications, limitation de la bande passante, et bien plus encore.
Fonctionnalités de wget
Section intitulée « Fonctionnalités de wget »La commande wget se distingue par sa polyvalence et sa robustesse pour le
téléchargement de fichiers en ligne de commande. Voici les principales
fonctionnalités qui en font un outil incontournable :
- Support de plusieurs protocoles : HTTP, HTTPS et FTP.
- Téléchargement de fichiers simples ou multiples.
- Reprise automatique des téléchargements interrompus.
- Téléchargement récursif de sites web.
- Gestion de l’authentification et des cookies.
- Limitation de la bande passante.
- Téléchargement en arrière-plan.
- Support des proxies.
- Personnalisation des requêtes HTTP.
Grâce à ces fonctionnalités, wget s’adapte à tous les besoins, du téléchargement ponctuel à l’automatisation avancée dans des scripts.
Syntaxe de base
Section intitulée « Syntaxe de base »La commande wget s’utilise principalement selon la structure suivante :
wget [options] URL-
options: Ce sont les différentes options que vous pouvez utiliser pour modifier le comportement dewget(voir section suivante pour les options essentielles). -
URL: C’est l’adresse du fichier ou du site web que vous souhaitez télécharger.
Télécharger un seul fichier
Section intitulée « Télécharger un seul fichier »Pour récupérer un fichier unique et l’enregistrer dans le répertoire courant, il suffit de taper :
wget https://exemple.com/fichier.zipChaque fichier est nommé d’après la dernière partie de l’URL (ici
fichier.zip).
Si vous préférez spécifier un nom local différent, utilisez l’option -O :
wget -O mon_téléchargement.zip https://exemple.com/fichier.zipCette syntaxe enregistre la ressource sous le nom mon_téléchargement.zip.
Téléchargement silencieux pour les scripts
Section intitulée « Téléchargement silencieux pour les scripts »En contexte automatisé, il est souvent préférable de supprimer la sortie verbeuse ou de limiter les messages d’erreur :
-qou--quiet: mode totalement silencieux.-nvou--no-verbose: désactive la barre de progression et les détails, mais affiche tout de même les erreurs c
Exemple :
wget -q -O fichier.txt https://exemple.com/data.txtEn cas d’échec HTTP (code ≥ 400), utilisez --server-response ou combinez avec
--show-progress pour obtenir juste le strict nécessaire.
Pour exécuter le téléchargement en tâche de fond tout en continuant à recevoir un log, on peut combiner :
wget -b -o log_wget.txt https://exemple.com/grand_fichier.isoLe téléchargement se poursuit en arrière-plan et le détail est écrit dans
log_wget.txt.
Spécifier un timeout
Section intitulée « Spécifier un timeout »Pour éviter de bloquer indéfiniment un script si le serveur ne répond pas,
wget propose plusieurs temps d’attente.
L’option --timeout=SEC fixe un délai global d’attente du serveur (en secondes)
avant d’abandonner la connexion :
wget --timeout=30 https://exemple.com/ressourceSi aucune donnée n’a été reçue en 30 s, wget interrompt la connexion.
--dns-timeout=SEC: délai maximal pour la résolution DNS.--connect-timeout=SEC: délai maximal pour établir la connexion TCP.
Exemple :
wget --dns-timeout=10 --connect-timeout=15 https://exemple.com/fichier.tar.gzNombre de tentatives
Section intitulée « Nombre de tentatives »Par défaut, wget réessaie 20 fois en cas de coupure ; pour modifier ce
comportement, ajustez --tries :
wget --tries=5 https://exemple.com/data.csvIci, wget tentera au maximum 5 connexions avant d’abandonner.
Reprise automatique
Section intitulée « Reprise automatique »Enfin, pour reprendre un téléchargement interrompu, utilisez -c :
wget -c https://exemple.com/film.mkvL’option -c détecte la taille déjà reçue et continue la récupération à partir
de cet octet.
Télécharger plusieurs fichiers
Section intitulée « Télécharger plusieurs fichiers »Lorsque vous devez récupérer en une seule commande un ensemble de ressources,
wget propose plusieurs méthodes pour automatiser ces téléchargements, que ce
soit via un fichier de liste, des motifs sur les URLs ou simplement une boucle
shell.
Utiliser un fichier de liste d’URLs
Section intitulée « Utiliser un fichier de liste d’URLs »L’option -i permet de traiter un fichier texte contenant une URL par ligne :
wget -i urls.txt-
Format de
urls.txtChaque ligne du fichier doit contenir une URL complète, sans espace ni commentaire ; par exemple :https://exemple.com/photo1.jpghttps://exemple.com/doc.pdfhttps://exemple.com/archive.tar.gz -
Logs et renommage Pour garder une trace des téléchargements et renommer certains fichiers, on peut combiner :
Fenêtre de terminal wget -i urls.txt -O nom_personnalisé # renomme tout en même nom, à éviterwget -i urls.txt -o urls.log # journalise l’activité dans urls.log -
Reprise en cas d’interruption Ajoutez
-cpour reprendre les fichiers interrompus :Fenêtre de terminal wget -c -i urls.txt
Globbing et motifs d’URLs
Section intitulée « Globbing et motifs d’URLs »wget dispose d’un globbing simple qui permet de générer plusieurs URLs à
partir d’un motif :
wget https://serveur/exemples/file[1-5].txt-
Séquences Le motif
[1-5]génèrefile1.txt,file2.txt, …,file5.txt. -
Zéros en tête Pour produire
file01.txtàfile10.txt:Fenêtre de terminal wget https://serveur/data/img[01-10].png -
Listes personnalisées On peut combiner plusieurs blocs :
Fenêtre de terminal wget https://site/chapitre[1-3]-section[a-c].htmlproduit
chapitre1-sectiona.html,chapitre1-sectionb.html, etc.
Attention : le globbing se limite aux crochets
[]et ne supporte pas les jokers*comme dans le shell.
Boucles Shell
Section intitulée « Boucles Shell »Pour plus de flexibilité, les boucles Bash permettent d’itérer sur une collection d’URLs ou de suffixes :
for n in {1..20}; do wget "https://exemple.com/vidéo_part${n}.mp4"done-
Lecture depuis un fichier :
Fenêtre de terminal for url in $(<urls.txt); dowget "$url"done -
Renommage automatique :
Fenêtre de terminal count=1for url in $(<urls.txt); dowget -O "fichier_${count}.dat" "$url"((count++))done -
Exécution parallèle Attention,
wgetn’est pas nativement parallèle ; vous pouvez lancer plusieurs instances en arrière-plan :Fenêtre de terminal for url in $(<urls.txt); dowget "$url" &donewait
Télécharger un site complet (mode récursif)
Section intitulée « Télécharger un site complet (mode récursif) »Pour cloner ou sauvegarder l’intégralité d’un site web, wget propose un mode
récursif puissant et très configurable. Ce chapitre détaille les options clés
pour contrôler la profondeur, les domaines autorisés, les types de fichiers à
inclure ou exclure, et le mirroring “prêt-à-l’emploi”.
Activation du mode récursif
Section intitulée « Activation du mode récursif »-
Option
-rActive le téléchargement récursif :wget -r https://exemple.com -
Option
-m(mirror) Combine plusieurs paramètres pour un mirroring “tout-en-un” :Fenêtre de terminal wget -m https://exemple.comÉquivaut à
-r -N -l inf --no-remove-listing— suit indéfiniment la profondeur (l inf), conserve les fichiers à jour (-N) et ne supprime pas les fichiers.listing.
Contrôler la profondeur
Section intitulée « Contrôler la profondeur »-
Option
-l NDéfinit le niveau de profondeur maximal (par défaut 5) :Fenêtre de terminal wget -r -l 2 https://exemple.comIci,
wgetsuit les liens vers deux niveaux au maximum. -
Profondeur infinie Avec
-l inf(ou dans le mode mirror), tous les niveaux sont explorés jusqu’à épuisement des pages accessibles.
Restreindre aux mêmes domaines
Section intitulée « Restreindre aux mêmes domaines »Pour éviter d’aller chercher des ressources hors du site principal :
-
Option
-D domaine1,domaine2Limite le téléchargement aux domaines listés :Fenêtre de terminal wget -r -D exemple.com,cdn.exemple.com https://exemple.com -
Option
--span-hostsAutorise la traversée vers d’autres hôtes si nécessaire, en combinaison avec-D. -
Option
--exclude-domainsExclut certains domaines explicitement :Fenêtre de terminal wget -r --exclude-domains pub.tracking.com https://exemple.com
Inclure ou exclure certains fichiers
Section intitulée « Inclure ou exclure certains fichiers »Pour affiner ce qui est téléchargé :
-
Option
--accept/--rejectSpécifie des motifs de noms de fichiers :Fenêtre de terminal wget -r --accept jpg,png,html https://exemple.comNe récupère que les images et pages HTML.
-
Option
--accept-regex/--reject-regexPermet des filtres basés sur des expressions régulières :Fenêtre de terminal wget -r --reject-regex ".*\?sessionid=.*" https://exemple.com
Options complémentaires pour le mirroring
Section intitulée « Options complémentaires pour le mirroring »-
Conserver la structure des répertoires Par défaut,
wget -rrecrée l’arborescence du site dans votre dossier local. -
Mettre à jour les fichiers existants Avec
-N, n’écrase que si la copie distante est plus récente. -
Générer un index HTML local Option
--convert-linksconvertit tous les liens pour qu’ils pointent vers les fichiers locaux :Fenêtre de terminal wget -m --convert-links https://exemple.com -
Limiter la vitesse Utilisez
--limit-ratepour ne pas saturer votre connexion, même en mode mirror.
Gestion des redirections et authentifications
Section intitulée « Gestion des redirections et authentifications »Pour accéder à des ressources protégées ou dont l’URL finale diffère de l’URL
initiale, wget fournit plusieurs options pour suivre les redirections HTTP et
pour gérer divers mécanismes d’authentification.
Suivre les redirections HTTP
Section intitulée « Suivre les redirections HTTP »Lorsqu’une URL renvoie un code 3xx, wget peut automatiquement suivre vers
l’emplacement final :
wget --max-redirect=20 https://exemple.com/ancien-lien--max-redirect=N: nombre maximal de redirections autorisées (par défaut 20).--trust-server-names: renomme automatiquement le fichier de sortie selon le nom fourni par le serveur à la dernière redirection.
Ces options permettent d’éviter les erreurs “404” ou “301 Moved Permanently” non suivies et garantissent que vous récupérez le contenu réel.
Authentification HTTP Basic et Digest
Section intitulée « Authentification HTTP Basic et Digest »Pour accéder à des pages protégées par authentification basique ou digest, deux paires d’options sont disponibles :
wget --http-user=utilisateur --http-password=motdepasse https://exemple.com/zone-securisee--http-user=USERet--http-password=PASS: authentification HTTP Basic.--auth-no-challenge: envoie les identifiants sans attendre une invitation du serveur (utile pour certains serveurs mal configurés).--http-auth-method=[basic|digest]: force l’usage de Basic ou Digest selon le besoin.
Authentification par cookies
Section intitulée « Authentification par cookies »Pour simuler une session de navigateur, conserver ou réutiliser des cookies :
wget --save-cookies cookies.txt --keep-session-cookies --post-data="user=Alice&pass=1234" https://exemple.com/loginwget --load-cookies cookies.txt https://exemple.com/ma-page--save-cookies FICHIER: enregistre les cookies reçus dans un fichier.--keep-session-cookies: inclut aussi les cookies de session dans le fichier (par défaut, seuls les cookies persistants sont sauvés).--load-cookies FICHIER: recharge les cookies préalablement sauvegardés pour les envoyer avec la requête.
Cette méthode est très utile pour automatiser l’accès à des zones nécessitant une connexion préalable.
Authentification par en-tête personnalisé (tokens)
Section intitulée « Authentification par en-tête personnalisé (tokens) »Certaines API ou applications web utilisent des tokens Bearer ou d’autres mécanismes d’en-tête :
wget --header="Authorization: Bearer MON_JETON" https://api.exemple.com/ressources--header="Clé: Valeur": ajoute un en-tête HTTP personnalisé.- Vous pouvez spécifier plusieurs fois
--headerpour inclure aussiContent-Type,Accept, etc.
Authentification FTP/FTPS
Section intitulée « Authentification FTP/FTPS »Pour les transferts de fichiers via FTP ou FTPS, wget gère aussi
l’authentification :
wget --ftp-user=ftpuser --ftp-password=ftppass ftp://ftp.exemple.com/dossier/fichier.txt--ftp-user=USERet--ftp-password=PASS: identifiants pour FTP ou FTPS.- Pour un serveur FTPS explicite (FTP sur SSL/TLS), utilisez l’URL commençant
par
ftps://.
Cette flexibilité fait de wget un outil universel pour accéder à quasiment
tous les services web ou FTP protégés.
Proxys et configurations réseau
Section intitulée « Proxys et configurations réseau »Lorsqu’un accès direct à Internet n’est pas possible ou que vous souhaitez
acheminer vos téléchargements via un serveur intermédiaire, wget met à
disposition plusieurs options pour configurer et utiliser des proxies, ainsi que
pour ajuster les résolutions DNS et le comportement IPv4/IPv6.
Passer par un proxy HTTP/HTTPS
Section intitulée « Passer par un proxy HTTP/HTTPS »-
Définir le proxy via variables d’environnement
Fenêtre de terminal export http_proxy="http://user:pass@proxy.exemple.com:3128/"export https_proxy="http://user:pass@proxy.exemple.com:3128/"wget https://exemple.com/fichier.txtLes variables
http_proxyethttps_proxysont automatiquement prises en compte parwget. -
Options en ligne de commande
Fenêtre de terminal wget --proxy-user=utilisateur --proxy-password=motdepasse \--execute="http_proxy = http://proxy.exemple.com:3128" \https://exemple.com/data.csvPermet de spécifier les identifiants et l’hôte du proxy sans toucher aux variables d’environnement.
Désactiver l’usage du proxy
Section intitulée « Désactiver l’usage du proxy »Pour une requête particulière, si vous souhaitez ignorer le proxy configuré :
wget --no-proxy https://exemple.com/ressourceCette option force wget à établir une connexion directe.
Forcer IPv4 ou IPv6
Section intitulée « Forcer IPv4 ou IPv6 »Sur des réseaux mixtes, il peut être nécessaire de contraindre la famille d’adresses IP utilisée :
-
Forcer IPv4
Fenêtre de terminal wget -4 https://exemple.com/fichier.img -
Forcer IPv6
Fenêtre de terminal wget -6 https://exemple.com/fichier.img
Ces options peuvent résoudre des problèmes de connectivité liés à certaines configurations DNS.
Utiliser un fichier de configuration .wgetrc
Section intitulée « Utiliser un fichier de configuration .wgetrc »Pour conserver vos réglages de proxy et de timeouts sans répéter les options,
vous pouvez créer un fichier de configuration personnel nommé .wgetrc dans
votre répertoire personnel. Ce fichier permet de définir des valeurs par défaut
pour toutes vos commandes wget, ce qui est particulièrement utile pour les
environnements automatisés ou les scripts.
Exemple de fichier .wgetrc :
http_proxy = http://proxy.exemple.com:3128/https_proxy = http://proxy.exemple.com:3128/no_proxy = localhost,127.0.0.1dns_timeout = 5connect_timeout = 10read_timeout = 20Ainsi, chaque appel à wget appliquera ces valeurs par défaut, simplifiant vos
scripts et commandes ad hoc.
Utilisation avancée
Section intitulée « Utilisation avancée »Au-delà des téléchargements basiques et des modes miroir, wget propose des
fonctionnalités avancées qui facilitent l’intégration dans des scripts
complexes, l’automatisation conditionnelle, et le contrôle fin du comportement
réseau.
Modification du User-Agent
Section intitulée « Modification du User-Agent »Certains serveurs adaptent leur réponse en fonction du client identifié. Pour forcer un User-Agent précis :
wget --user-agent="Mozilla/5.0 (compatible; MonScraper/1.0)" \ https://exemple.com/pageCela peut être utile pour contourner des filtrages basés sur le User-Agent ou tester la réactivité du serveur à différents navigateurs.
Exécution de commandes après téléchargement
Section intitulée « Exécution de commandes après téléchargement »Grâce à l’option --execute ou à la combinaison avec un script shell, vous
pouvez enchaîner automatiquement des actions post-téléchargement :
wget https://exemple.com/data.csv && \csvtool readable data.csv > data_pretty.txtOu dans .wgetrc :
execute = chmod 644 # applique le chmod sur les fichiers récupérésLimitation de bande passante et quotas
Section intitulée « Limitation de bande passante et quotas »Pour protéger votre réseau ou respecter des plafonds, --limit-rate restreint
le débit :
wget --limit-rate=200k https://exemple.com/video.mp4Vous pouvez également définir un nombre maximal de téléchargements simultanés dans un script via un contrôle de boucle.
Utilisation conditionnelle et scripts d’automatisation
Section intitulée « Utilisation conditionnelle et scripts d’automatisation »En combinant wget avec des tests shell, vous pouvez réaliser des boucles de
vérification et de téléchargement :
while true; do wget -N https://exemple.com/rapport_quotidien.pdf sleep 86400 # attend 24 hdoneOu surveiller un fichier Last-Modified :
if wget --spider --server-response https://exemple.com/page 2>&1 \ | grep -q "Last-Modified: .*2025"; then wget https://exemple.com/page -O nouvelle.htmlfiContrôle de connaissances
Section intitulée « Contrôle de connaissances »Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
📋 Récapitulatif de vos réponses
Vérifiez vos réponses avant de soumettre. Cliquez sur une question pour la modifier.
Détail des réponses
Conclusion
Section intitulée « Conclusion »En résumé, wget offre une solution fiable et non interactive pour télécharger
des fichiers via HTTP, HTTPS et FTP, en supportant la reprise automatique et
l’exécution en arrière-plan. Sa capacité de téléchargement récursif et de
mirroring de sites entiers en fait un outil incontournable pour copier et
synchroniser des contenus web. Léger, portable et facilement scriptable, wget
s’intègre naturellement dans les chaînes d’automatisation et les environnements
serveur pour simplifier les tâches de récupération et de sauvegarde de données.