Sto usando il ricciolo in questa sintassi:
curl -o myfile.jpg http://mysite.com/myfile.jpg
Se eseguo questo comando due volte, ottengo due file:
myfile.jpg
myfile-1.jpg
Come posso dire a CURL che voglio che sovrascriva il file se esiste?
Sto usando il ricciolo in questa sintassi:
curl -o myfile.jpg http://mysite.com/myfile.jpg
Se eseguo questo comando due volte, ottengo due file:
myfile.jpg
myfile-1.jpg
Come posso dire a CURL che voglio che sovrascriva il file se esiste?
Risposte:
Uso:
curl http://mysite.com/myfile.jpg > myfile.jpg
noclobberopzione abilitata ( set +o noclobber).
Ho riscontrato lo stesso problema e voglio riutilizzare lo stesso nome file qualunque sia il lato server, nel tuo caso potresti ottenere il nome file basename
➸ basename 'http://mysite.com/myfile.jpg'
myfile.jpg
quindi puoi scrivere una funzione di supporto bash come:
➸ function download { name="$(basename $1)"; curl "$1" > "$name"; }
➸ download 'http://mysite.com/myfile.jpg'
ma nel mio caso il nome file non fa nemmeno parte dell'URL, viene fornito con content-disposition; con arricciatura la riga di comando è
$ curl -fSL -R -J -O 'http://some-site.com/getData.php?arg=1&arg2=...'
è possibile ignorare gli -fSLhandle se il lato server fornisce il reindirizzamento 302; il -Rtimestamp per il lato server, -Jper considerare il lato server Content-Dispositione -Opassare al comportamento di download invece di scaricare sul terminale;
tuttavia, soffre ancora di rifiutare di sovrascrivere se esiste il nome del file; Voglio che sovrascriva se il Last-Modifiedtimestamp sul lato server è più recente;
finisce con una soluzione di wget che è in grado di farlo:
$ wget -NS --content-disposition 'http://some-site.com/getData.php?arg=1&arg2=...'
il -Nè quello di verificare lato tiemstamp server e sovrascrivere solo quando lato server ha nuova versione; --content-dispositionè considerare l' Content-Dispositionintestazione; e il comportamento predefinito di wget è scaricare, nel nome file fornito dal lato server.
nel tuo caso, se non ti interessa il timestamp, è solo
$ wget -O myfile.jpg http://mysite.com/myfile.jpg
curlversione su quale sistema?