J'utilise curl dans cette syntaxe:
curl -o myfile.jpg http://mysite.com/myfile.jpg
Si j'exécute cette commande deux fois, j'obtiens deux fichiers:
myfile.jpg
myfile-1.jpg
Comment puis-je dire à CURL que je veux qu'il écrase le fichier s'il existe?
curl
version sur quel système?Réponses:
Utilisation:
la source
noclobber
option n'est pas activée (set +o noclobber
).J'ai rencontré le même problème et je veux réutiliser le même nom de fichier quel que soit le côté serveur, dans votre cas, vous pouvez obtenir le nom de fichier en
basename
alors vous pouvez écrire une fonction bash d'aide comme:
mais dans mon cas, le nom de fichier ne fait même pas partie de l'url, il vient avec la disposition du contenu; avec curl la ligne de commande est
vous pouvez ignorer ce
-fSL
qu'il gère si le côté serveur donne la redirection 302; l'-R
horodatage côté serveur,-J
pour prendre en compte le côté serveurContent-Disposition
, et-O
pour passer au comportement de téléchargement au lieu de vider sur le terminal;cependant, il souffre toujours de refuser d'écraser si le nom de fichier existe; Je veux qu'il écrase si l'
Last-Modified
horodatage côté serveur est plus récent;se retrouve avec une solution wget, il est capable de le faire:
l'
-N
est de vérifier tiemstamp côté serveur et remplacer uniquement lorsque le côté serveur a une nouvelle version;--content-disposition
est de considérer l'en-Content-Disposition
tête; et le comportement par défaut de wget est de télécharger, vers le nom de fichier donné du côté serveur.dans votre cas, si vous ne vous souciez pas de l'horodatage, c'est juste
la source