← Sommaire SkyLinux

curl et wget — Télécharger des fichiers depuis le terminal

Quand tu travailles sur Linux, il est courant d'avoir besoin de télécharger des fichiers depuis internet. Deux commandes rendent cela très simple : curl et wget. Chacune a ses forces, et tu apprendras à choisir laquelle utiliser selon la situation.

wget — Téléchargement simple et automatique

wget est idéal pour télécharger des fichiers de manière récursive ou en arrière-plan. Il reprend automatiquement un téléchargement interrompu et suit les redirections.

Téléchargement basique

wget https://example.com/fichier.tar.gz

Le fichier sera téléchargé et sauvegardé sous le même nom fichier.tar.gz.

Télécharger avec un nom différent

wget -O mon-fichier.zip https://example.com/archive.zip

L'option -O permet de spécifier le nom du fichier de sortie.

Reprise automatique après interruption

wget -c https://example.com/gros-fichier.iso

Si le téléchargement est interrompu, -c reprend là où il s'est arrêté. Très utile pour les gros fichiers !

Télécharger en arrière-plan

wget -b https://example.com/fichier.iso

L'option -b lance le téléchargement en arrière-plan. Tu peux vérifier l'avancement avec :

tail -f wget-log

Télécharger un site web complet

wget --mirror -p --convert-links https://example.com

Cette commande télécharge récursivement tout un site web pour consultation hors ligne.

curl — Transfert de données多功能

curl est plus puissant pour envoyer des données (POST, uploads) et pour visualiser les en-têtes HTTP. Il affiche aussi le résultat dans le terminal par défaut.

Afficher le contenu d'une page

curl https://example.com

Le contenu HTML s'affiche directement dans le terminal (sans sauvegarder).

Télécharger et sauvegarder un fichier

curl -O https://example.com/fichier.tar.gz

L'option -O (majuscule) sauvegarde le fichier sous son nom original.

Télécharger avec un nom personnalisé

curl -o mon-fichier.zip https://example.com/archive.zip

L'option -o (minuscule) permet de choisir le nom de sortie.

Suivre les redirections

curl -L https://example.com/page-redirectee

L'option -L suit automatiquement les redirections HTTP.

Télécharger avec authentification

curl -u utilisateur:mdp https://example.com/fichier-protege

L'option -u permet de s'authentifier avec un nom d'utilisateur et mot de passe.

Envoyer un POST avec des données

curl -X POST -d "nom=valeur" https://api.example.com/endpoint
curl -X POST -d "param1=alpha" -d "param2=beta" https://api.example.com

-X POST指定 la méthode et -d envoie les données.

Envoyer un formulaire multipart

curl -F "fichier=@photo.jpg" https://api.example.com/upload

L'option -F envoie un formulaire multipart (utile pour les uploads de fichiers).

Voir les en-têtes HTTP

curl -I https://example.com

L'option -I affiche uniquement les en-têtes de la réponse.

Ajouter des en-têtes personnalisés

curl -H "Authorization: Bearer token123" https://api.example.com/data

L'option -H permet d'ajouter des en-têtes personnalisés.

Utiliser curl avec une API JSON

Pour envoyer ou recevoir des données JSON :

curl -H "Content-Type: application/json" \
-d '{"nom":"Alice","age":30}' \
https://api.example.com/users

Tableau comparatif wget vs curl

Featurewgetcurl
Téléchargement basique
Reprise automatique
Téléchargement récursif
Envoi de données POST
Upload de fichiers
Affichage en terminal
Arrière-plan
Suivre liens (mirroring)

Télécharger avec une barre de progression

wget

wget --progress=bar https://example.com/fichier.iso

curl

curl -# -O https://example.com/fichier.zip

Combiner avec d'autres outils

Télécharger et décompresser en une ligne

wget -qO- https://example.com/archive.tar.gz | tar -xz

Télécharger et extraire un fichier ZIP

curl -sL https://example.com/fichier.zip -o /tmp/f.zip && unzip /tmp/f.zip

Téléchargement avec vitesse limitée

Pour ne pas saturer la bande passante :

wget --limit-rate=200k https://example.com/gros-fichier.iso
curl --limit-rate 200k -O https://example.com/fichier.zip

La vitesse est limitée à 200 Ko/s dans ces exemples.

Vérifier les liens brisés

Avec curl et un peu de script, tu peux vérifier si une liste de liens fonctionne :

for url in $(cat liens.txt); do curl -s -o /dev/null -w "%{http_code} $url\n" "$url"; done

Cela affiche le code HTTP de chaque lien dans liens.txt.

Résumé des options principales

wget

curl

Exercices pratiques

  1. Utilise wget pour télécharger un fichier depuis une URL de ton choix.
  2. Utilise curl pour afficher le contenu HTML d'une page web.
  3. Télécharge un fichier archive et décompresse-le en une seule ligne avec pipe.
  4. Utilise curl -I pour voir les en-têtes HTTP d'un site.
  5. Essaie de télécharger un fichier avec wget -c et interrompt-le avec Ctrl+C, puis reprends-le avec la même commande.