GNU/Linux >> Tutoriels Linux >  >> Linux

wget vs curl :comment télécharger des fichiers à l'aide de wget et curl

Question : J'utilise généralement wget pour télécharger des fichiers. Sur certains systèmes, wget n'est pas installé et seul curl est disponible. Pouvez-vous m'expliquer avec un exemple simple comment je peux télécharger un fichier distant à l'aide de curl ? Y a-t-il une différence entre curl et wget ?

Réponse : De manière générale, wget et curl sont des utilitaires de ligne de commande qui font la même chose.

  • Ils peuvent tous deux être utilisés pour télécharger des fichiers via FTP et HTTP(s).
  • Vous pouvez également envoyer une requête HTTP POST en utilisant curl et wget
  • Cependant, curl fournit des API qui peuvent être utilisées par les programmeurs dans leur propre code. curl utilise libcurl qui est une bibliothèque multiplateforme.
  • wget est juste un outil de ligne de commande sans aucune API.
  • Curl prend également en charge beaucoup plus de protocoles que wget ne prend pas en charge. Par exemple :SCP, SFTP, TFTP, TELNET, LDAP(S), FILE, POP3, IMAP, SMTP, RTMP et RTSP.
  • Il y a un avantage majeur à utiliser wget. wget prend en charge le téléchargement récursif, contrairement à curl.

Exemples Wget

L'exemple suivant télécharge le fichier et le stocke sous le même nom que le serveur distant.

wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

L'exemple suivant télécharge le fichier et le stocke sous un nom différent de celui du serveur distant. Ceci est utile lorsque l'URL distante ne contient pas le nom du fichier dans l'URL, comme illustré dans l'exemple ci-dessous.

wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701

Plus d'exemples de wget :Le guide de téléchargement ultime de Wget avec 15 exemples impressionnants

Exemples de boucles

$ curl -O http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 28 3762k   28 1085k    0     0  72771      0  0:00:52  0:00:15  0:00:37 54267

L'option -O (O majuscule) est importante. Sans cela, curl commencera à vider le fichier téléchargé sur la sortie standard. En utilisant -O, il télécharge les fichiers au même nom que le serveur distant. Dans l'exemple ci-dessus, nous téléchargeons strx25-0.9.2.1.tar.bz2, donc le fichier téléchargé portera également le même nom.

Au lieu de -O, vous pouvez également spécifier "-nom-distant" comme indiqué ci-dessous. Les deux sont identiques.

$ curl --remote-name http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

Pendant le téléchargement de curl, il donne les informations utiles suivantes :

  • % - Le % total du téléchargement qui a été effectué à ce jour. Lorsqu'il atteint 100%, le téléchargement est terminé. Dans l'exemple ci-dessus, il n'a téléchargé que 28 % du fichier.
  • Total – La taille totale du fichier
  • Reçu :la taille totale du fichier qui a été téléchargé jusqu'à présent. Dans l'exemple ci-dessus, il a téléchargé 1085k jusqu'à présent (sur un total de 3762k)
  • Xferd - Ceci sera utilisé lorsque vous téléchargerez des fichiers sur le serveur distant. Pendant le téléchargement, cela indiquera la taille totale du fichier qui a été téléchargé jusqu'à présent. Puisque nous téléchargeons un fichier, dans cet exemple, c'est 0.
  • Average Speed ​​Dload – Cela indique la vitesse moyenne de téléchargement.
  • AVerage Speed ​​Upload – Lors du téléchargement d'un fichier, cela indiquera la vitesse de téléchargement moyenne
  • Time Total - Cela indique le temps total qu'il faudra pour télécharger (ou télécharger) l'ensemble du fichier en fonction de la vitesse de téléchargement (ou de téléchargement) actuelle. Dans cet exemple, il faudra environ 52 secondes au total pour télécharger ce fichier.
  • Temps passé - Le temps que curl a passé jusqu'à présent à télécharger (ou télécharger) le fichier. Dans cet exemple, il a passé 15 secondes jusqu'à présent.
  • Temps restant – Ceci est calculé sur la base du « Temps total » - « Temps passé ».
  • Vitesse actuelle - Ceci indique la vitesse de téléchargement/téléchargement actuelle. Comparez cela avec la vitesse moyenne de chargement/téléchargement pour voir à quelle vitesse votre système télécharge actuellement.

Si vous souhaitez télécharger le fichier et le stocker sous un nom différent de celui du fichier sur le serveur distant, utilisez -o (o minuscule) comme indiqué ci-dessous. Ceci est utile lorsque l'URL distante ne contient pas le nom du fichier dans l'URL, comme illustré dans l'exemple ci-dessous.

$  curl -o taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 50243  100 50243    0     0   170k      0 --:--:-- --:--:-- --:--:--  400k

Dans l'exemple ci-dessus, il n'y a pas de nom de fichier dans l'URL distante, il appelle simplement un script php qui lui transmet certains paramètres. Cependant, le fichier sera téléchargé et enregistré sous taglist.zip sur votre système local. Au lieu de -o, vous pouvez également spécifier "–output".

Plus d'exemples curl :15 exemples pratiques de commandes Linux cURL


Linux
  1. Comment extraire les fichiers .gz et .tar.gz sous Linux

  2. Comment envoyer et télécharger des fichiers à l'aide de Rsync

  3. 5 Exemples de commandes Wget pour télécharger des fichiers sous Linux.

  4. Comment télécharger des fichiers depuis la ligne de commande à l'aide de la commande wget ?

  5. Comment fusionner deux fichiers avec AWK ?

Comment télécharger un fichier à l'aide de Wget via un proxy sous Linux

Comment télécharger des fichiers avec la commande Curl sous Linux

Comment télécharger des fichiers avec la commande Wget sous Linux

Comment masquer des dossiers et des fichiers sous Linux à l'aide d'un fichier texte

Comment compresser et extraire des fichiers à l'aide du gestionnaire de fichiers

Comment télécharger des fichiers dans Rocky Linux 8 sur la ligne de commande à l'aide de wget