web-dev-qa-db-fra.com

Ubuntu: utiliser curl pour télécharger une image

Je souhaite télécharger une image accessible à partir de ce lien: https://www.python.org/static/Apple-touch-icon-144x144-precomposed.png dans mon système local. Je sais maintenant que la commande curl peut être utilisée pour télécharger des fichiers distants via le terminal. J'ai donc saisi les informations suivantes dans mon terminal afin de télécharger l'image sur mon système local:

curl https://www.python.org/static/Apple-touch-icon-144x144-precomposed.png

Toutefois, cela ne semble pas fonctionner et il existe donc un autre moyen de télécharger des images à partir d'Internet à l'aide de curl. Quelle est la bonne façon de télécharger des images en utilisant cette commande?

40
Manas Chaturvedi

curl sans aucune option effectuera une demande GET. Il retournera simplement les données de l'URI spécifié. Ne récupérez pas le fichier lui-même sur votre ordinateur local.

Quand tu le fais

$ curl https://www.python.org/static/Apple-touch-icon-144x144-precomposed.png

Vous recevrez des données binaires:

                   |�>�$! <R�HP@T*�Pm�Z��jU֖��ZP+UAUQ@�
��{X\� K���>0c�yF[i�}4�!�V̧�H_�)nO#�;I��vg^_ ��-Hm$$N0.
���%Y[�L�U3�_^9��P�T�0'u8�l�4 ...

Afin de sauver ceci, vous pouvez utiliser:

$ curl https://www.python.org/static/Apple-touch-icon-144x144-precomposed.png > image.png

pour stocker ces données d'image brutes à l'intérieur d'un fichier.

Un moyen plus simple consiste simplement à utiliser wget.

$ wget https://www.python.org/static/Apple-touch-icon-144x144-precomposed.png
$ ls
.
..
Apple-touch-icon-144x144-precomposed.png
68
sircapsalot

Pour ceux qui n'ont ni ne veulent installer wget, curl -O (majuscule "o", pas un zéro) fera la même chose que wget. Par exemple. mon ancien netbook n'a pas wget et est une installation de 2,68 Mo dont je n'ai pas besoin.

curl -O https://www.python.org/static/Apple-touch-icon-144x144-precomposed.png
17
jwh

Si vous souhaitez conserver le nom d'origine, utilisez majuscule -O

curl -O https://www.python.org/static/Apple-touch-icon-144x144-precomposed.png

Si vous souhaitez enregistrer un fichier distant sous un nom différent, utilisez des minuscules -o

curl -o myPic.png https://www.python.org/static/Apple-touch-icon-144x144-precomposed.png

4
daGo

Créez un nouveau fichier appelé files.txt et collez les URL une par ligne. Puis exécutez la commande suivante.

xargs -n 1 curl -O < files.txt

source: https://www.abeautifulsite.net/downloading-a-list-of-urls-automatically

3
korchix

Pour ceux qui ont eu permission denied pour l'opération de sauvegarde, voici la commande qui a fonctionné pour moi:

$ curl https://www.python.org/static/Apple-touch-icon-144x144-precomposed.png --output py.png
0