Dans un shell script, je veux télécharger un fichier à partir d'une URL et l'enregistrer dans un dossier spécifique. Quel est le drapeau CLI spécifique que je dois utiliser pour télécharger des fichiers dans un dossier spécifique avec la commande curl
ou comment puis-je obtenir ce résultat autrement ?
Réponses
Trop de publicités?Je ne pense pas que vous puissiez donner un chemin d'accès à curl, mais vous pouvez faire un CD vers l'emplacement, télécharger et faire un CD en retour.
cd target/path && { curl -O URL ; cd -; }
Ou en utilisant subshell.
(cd target/path && curl -O URL)
Dans les deux cas, le téléchargement ne se fera que si le chemin d'accès existe. -O
conserve le nom du fichier distant. Après le téléchargement, il retourne à l'emplacement d'origine.
Si vous devez définir le nom du fichier de manière explicite, vous pouvez utiliser le petit fichier -o
option :
curl -o target/path/filename URL
Cette option est disponible dans curl 7.73.0 :
curl --create-dirs -O --output-dir /tmp/receipes https://example.com/pancakes.jpg
Utiliser la redirection :
Cela permet de déposer un curl
fichier téléchargé dans un chemin spécifié :
curl https://download.test.com/test.zip > /tmp/test.zip
Évidemment " test.zip "est le nom arbitraire que vous souhaitez donner au fichier redirigé - il peut s'agir du même nom ou d'un nom différent.
Je préfère en fait la solution de @oderibas, mais cela vous permettra de contourner le problème jusqu'à ce que votre distro supporte la version 7.73.0 de curl ou une version ultérieure
- Réponses précédentes
- Plus de réponses