Questo è l'esempio più semplice che esegue wget:
wget http://www.example.com/images/misc/pic.png
ma come fare wget skip download se pic.png
è già disponibile?
Questo è l'esempio più semplice che esegue wget:
wget http://www.example.com/images/misc/pic.png
ma come fare wget skip download se pic.png
è già disponibile?
Risposte:
Prova il seguente parametro:
-nc
,--no-clobber
: salta i download che verrebbero scaricati su file esistenti.
Esempio di utilizzo:
wget -nc http://example.com/pic.png
[ ! -e "$(basename $URL)" ] && wget $URL
--recursive
opzione.
L' opzione -nc
, --no-clobber
non è la soluzione migliore in quanto i file più recenti non verranno scaricati. Si dovrebbe usare -N
invece quello che scaricherà e sovrascriverà il file solo se il server ha una versione più recente, quindi la risposta corretta è:
wget -N http://www.example.com/images/misc/pic.png
Quindi eseguendo Wget con -N, con o senza
-r
o-p
, la decisione se scaricare o meno una copia più recente di un file dipende dal timestamp locale e remoto e dalle dimensioni del file.-nc
non può essere specificato contemporaneamente a-N
.
-N
,--timestamping
: Attiva il timestamp.
-N
potrebbe non funzionare e wget verrà sempre scaricato nuovamente. Quindi a volte -nc
è la soluzione migliore.
wget
si lamenterà Last-modified header missing
; questa è esattamente la situazione descritta.
Quando si esegue Wget con -r
o -p
, ma senza -N
, -nd
o-nc
, il ri-download di un file comporterà la nuova copia semplicemente sovrascrivendo il vecchio.
Quindi l'aggiunta -nc
impedirà questo comportamento, causando invece la conservazione della versione originale e l'ignoramento di eventuali copie più recenti sul server.
La risposta che stavo cercando è su https://unix.stackexchange.com/a/9557/114862 .
L'uso del
-c
flag quando il file locale ha dimensioni maggiori o uguali alla versione del server eviterà il nuovo download.
wget -i filelist.txt -c
riprenderà il download non riuscito di un elenco di file.
-nc
non impedisce l'invio della richiesta HTTP e il successivo download del file. Semplicemente non fa nulla dopo aver scaricato il file se il file è già stato completamente recuperato. Esiste un modo per impedire la richiesta HTTP se il file esiste già? stackoverflow.com/questions/33203898/...