Learning Center
Système Linux

Comment télécharger des fichiers avec cURL

20 oct. 2025
Emmanuel Oyibo
Emmanuel Oyibo

Le téléchargement de contenu à partir de serveurs distants est une tâche courante pour les administrateurs et les développeurs. Bien qu’il existe de nombreux outils pour cette tâche, cURL se distingue par sa flexibilité et sa simplicité. Il s’agit d’un utilitaire en ligne de commande qui prend en charge des protocoles tels que HTTP, HTTPS, FTP et SFTP, ce qui le rend essentiel pour l’automatisation, les scripts et les transferts de fichiers efficaces.

Vous pouvez exécuter cURL directement sur votre ordinateur pour récupérer des fichiers. Vous pouvez également l’intégrer dans des scripts afin de simplifier la gestion des données, réduisant ainsi les efforts manuels et les erreurs. Ce guide présente plusieurs méthodes pour télécharger des fichiers avec cURL. En suivant ces exemples, vous apprendrez à gérer les redirections, renommer des fichiers et surveiller la progression des téléchargements. À la fin, vous devriez être en mesure d’utiliser cURL en toute confiance pour des tâches sur des serveurs ou dans des environnements cloud.

Commande de base cURL pour télécharger un fichier
Copier le lien

La commande curl fonctionne avec plusieurs protocoles, mais elle est principalement utilisée avec HTTP et HTTPS pour se connecter à des serveurs web. Elle peut également interagir avec des serveurs FTP ou SFTP si nécessaire.

Par défaut, cURL récupère une ressource à partir d’une URL spécifiée et l’affiche dans votre terminal (sortie standard). Cela est souvent utile pour prévisualiser le contenu d’un fichier sans le sauvegarder, en particulier s’il s’agit d’un petit fichier texte.

Exemple : pour afficher le contenu d’un fichier texte hébergé sur https://example.com/file.txt, exécutez :

curl https://example.com/file.txt

Pour les documents texte courts, cette méthode est suffisante. Cependant, les fichiers volumineux ou binaires peuvent saturer l’écran de données illisibles, vous préférerez donc généralement les enregistrer.

Enregistrer des fichiers distants
Copier le lien

Souvent, l’objectif principal est d’enregistrer le fichier téléchargé sur votre machine locale plutôt que de l’afficher dans le terminal. cURL simplifie cela avec l’option -O (O majuscule), qui conserve le nom d’origine du fichier distant.

curl -O https://example.com/file.txt

Cela récupère file.txt et le sauvegarde dans le répertoire actuel sous le même nom. Cette méthode est rapide et conserve le nom de fichier existant, ce qui peut être utile si le nom a une signification particulière.

Choisir un autre nom de fichier
Copier le lien

Parfois, il est important de renommer le fichier téléchargé pour éviter les conflits ou créer une convention de nommage claire. Dans ce cas, utilisez l’option -o (o minuscule) :

curl -o myfile.txt https://example.com/file.txt

Ici, cURL télécharge le fichier distant file.txt mais le sauvegarde localement sous monfichier.txt. Cela aide à garder les fichiers organisés ou à éviter les écrasements accidentels. C’est particulièrement utile dans les scripts nécessitant des noms de fichiers descriptifs.

Suivre les redirections
Copier le lien

Lorsqu’un fichier est demandé, les serveurs peuvent indiquer à votre client d’aller à une autre URL. Comprendre et gérer les redirections est essentiel pour réussir un téléchargement.

Pourquoi les redirections sont importantes
Copier le lien

Les redirections sont souvent utilisées sur les sites web réorganisés, les fichiers déplacés ou les liens miroir. Sans gestion des redirections, cURL s’arrête après avoir reçu une réponse « déplacé », et vous n’obtiendrez pas le fichier.

Utiliser -L ou --location
Copier le lien

Pour demander à cURL de suivre une chaîne de redirections jusqu’à la destination finale, utilisez -L (ou --location) :

curl -L -O https://example.com/redirected-file.jpg

Cela permet à cURL de récupérer le bon fichier même si l’URL initiale pointe ailleurs. Si vous omettez -L, cURL affichera simplement le message de redirection et s’arrêtera, ce qui peut poser problème sur les sites comportant plusieurs redirections.

Télécharger plusieurs fichiers
Copier le lien

cURL peut également gérer plusieurs téléchargements simultanément, vous évitant ainsi d’exécuter la commande plusieurs fois.

Utiliser des accolades et des modèles
Copier le lien

Si les noms de fichiers partagent un schéma commun, les accolades {} vous permettent de spécifier chaque nom de manière concise :

curl -O https://example.com/files/{file1.jpg,file2.jpg,file3.jpg}

cURL télécharge chaque fichier à la suite, ce qui est pratique pour les processus automatisés.

Utiliser des plages
Copier le lien

Pour une série de fichiers numérotés ou étiquetés alphabétiquement, spécifiez une plage entre crochets :

curl -O https://example.com/files/file[1-5].jpg

cURL parcourt automatiquement les fichiers file1.jpg à file5.jpg. C’est idéal pour les séquences de fichiers nommés de manière cohérente.

Enchaîner plusieurs téléchargements
Copier le lien

Si vous avez différentes URLs pour chaque fichier, vous pouvez les enchaîner :

curl -O https://example1.com/file1.jpg -O https://example2.com/file2.jpg

Cette méthode télécharge file1.jpg du premier site et file2.jpg du second, sans avoir à exécuter plusieurs commandes.

Limitation de vitesse et délais d’attente
Copier le lien

Dans certaines situations, vous pouvez vouloir contrôler la vitesse de téléchargement ou empêcher cURL d’attendre trop longtemps une réponse d’un serveur inactif.

Contrôle de la bande passante
Copier le lien

Pour éviter de surcharger votre réseau ou simuler des conditions lentes, limitez la vitesse de téléchargement avec --limit-rate :

curl --limit-rate 2M -O https://example.com/bigfile.zip

2M signifie 2 mégaoctets par seconde. Vous pouvez également utiliser K pour kilooctets ou G pour gigaoctets.

Délais d’attente
Copier le lien

Si un serveur est trop lent, vous pouvez demander à cURL d’arrêter après un certain temps. L’option --max-time fait exactement cela :

curl --max-time 60 -O https://example.com/file.iso

Ici, cURL s’arrête après 60 secondes, ce qui est utile pour les scripts nécessitant une gestion rapide des échecs.

Mode silencieux et mode verbeux
Copier le lien

cURL peut ajuster sa sortie pour afficher un minimum d’informations ou des détails complets.

Téléchargements silencieux
Copier le lien

Pour les tâches automatiques ou les cron jobs où vous n’avez pas besoin de barres de progression, utilisez -s (ou --silent) :

curl -s -O https://example.com/file.jpg

Cela masque la progression et les erreurs, ce qui rend les journaux plus propres. Cependant, le débogage devient plus difficile en cas d’échec silencieux.

Mode verbeux
Copier le lien

À l’inverse, -v (ou --verbose) affiche des informations détaillées sur les requêtes et réponses :

curl -v https://example.com

La sortie verbeuse est précieuse pour diagnostiquer des problèmes tels que des certificats SSL invalides ou des redirections incorrectes.

Authentification et sécurité
Copier le lien

Certains téléchargements nécessitent des identifiants ou une connexion sécurisée.

Authentification HTTP/FTP
Copier le lien

Lorsqu’un serveur exige un nom d’utilisateur et un mot de passe, utilisez -u :

curl -u username:password -O https://example.com/protected/file.jpg

L’insertion directe des identifiants peut être risquée, car ils peuvent apparaître dans les journaux ou les listes de processus. Envisagez d’utiliser des variables d’environnement ou des fichiers .netrc pour un traitement plus sûr.

HTTPS et certificats
Copier le lien

Par défaut, cURL vérifie les certificats SSL. Si le certificat est invalide, cURL bloque le transfert. Vous pouvez contourner cette vérification avec -k ou --insecure, bien que cela comporte des risques de sécurité. Dans la mesure du possible, utilisez une autorité de certification de confiance pour garantir des connexions authentifiées.

Utiliser un proxy
Copier le lien

Dans certains environnements, le trafic doit passer par un serveur proxy avant d’atteindre la destination.

Télécharger via un proxy
Copier le lien

Utilisez l’option -x ou --proxy pour spécifier le proxy :

curl -x http://proxy_host:proxy_port -O https://example.com/file.jpg

Remplacez proxy_host et proxy_port par les informations appropriées. cURL envoie la requête au proxy, qui télécharge ensuite le fichier pour vous.

Authentification du proxy
Copier le lien

Si votre proxy requiert des identifiants, intégrez-les dans l’URL :

curl -x https://proxy.example.com:8080 -U myuser:mypassword -O https://example.com/file.jpg

Encore une fois, stocker des données sensibles en texte clair est dangereux. Les variables d’environnement ou les fichiers de configuration sont des solutions plus sûres.

Surveiller la progression du téléchargement
Copier le lien

Le suivi de la progression est essentiel pour les fichiers volumineux ou les connexions lentes.

Indicateur de progression par défaut
Copier le lien

Par défaut, cURL affiche un indicateur de progression comprenant la taille totale, la vitesse de transfert et le temps estimé restant. Par exemple :

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1256  100  1256    0     0   2243      0 --:--:-- --:--:-- --:--:--  2246

Cet affichage vous aide à évaluer la quantité restante et à vérifier si la vitesse de transfert est satisfaisante.

Barre de progression compacte
Copier le lien

Si vous souhaitez moins de détails, ajoutez -# :

curl -# -O https://example.com/largefile.iso

Une barre plus simple affiche la progression totale en pourcentage. Elle est plus lisible, mais ne montre pas les statistiques détaillées comme la vitesse actuelle.

Capturer la progression dans les scripts
Copier le lien

Lorsque vous utilisez cURL dans des scripts, vous pouvez vouloir enregistrer les données de progression. cURL envoie généralement ces informations à stderr, vous pouvez donc les rediriger :

curl -# -O https://example.com/largefile.iso 2>progress.log

Ici, progress.log contient les mises à jour d’état que vous pouvez analyser ou conserver pour une révision ultérieure.

Conclusion
Copier le lien

cURL s’impose comme un outil en ligne de commande flexible pour télécharger des fichiers via plusieurs protocoles et environnements. Que vous deviez gérer des redirections complexes, renommer des fichiers à la volée ou limiter la bande passante, cURL a tout ce qu’il faut. En maîtrisant ses principales options et modes, vous pourrez intégrer cURL sans effort dans votre flux de travail quotidien pour le scripting, l’automatisation et des transferts de fichiers plus efficaces.