C'est l'exemple le plus simple de l'exécution de wget:
wget http://www.example.com/images/misc/pic.png
mais comment faire wget sauter le téléchargement si pic.png
est déjà disponible?
C'est l'exemple le plus simple de l'exécution de wget:
wget http://www.example.com/images/misc/pic.png
mais comment faire wget sauter le téléchargement si pic.png
est déjà disponible?
Réponses:
Essayez le paramètre suivant:
-nc
,--no-clobber
: ignorer les téléchargements qui seraient téléchargés dans des fichiers existants.
Exemple d'utilisation:
wget -nc http://example.com/pic.png
[ ! -e "$(basename $URL)" ] && wget $URL
--recursive
option.
La -nc
, --no-clobber
option n'est pas la meilleure solution sous forme de fichiers les plus récents ne seront pas téléchargés. On devrait utiliser à la -N
place qui téléchargera et écrasera le fichier uniquement si le serveur a une version plus récente, donc la bonne réponse est:
wget -N http://www.example.com/images/misc/pic.png
Ensuite, exécuter Wget avec -N, avec ou sans
-r
ou-p
, la décision de télécharger ou non une copie plus récente d'un fichier dépend de l'horodatage local et distant et de la taille du fichier.-nc
peut ne pas être spécifié en même temps que-N
.
-N
,--timestamping
: Activez l'horodatage.
-N
peut échouer et wget sera toujours retéléchargé. Parfois, -nc
c'est donc une meilleure solution.
wget
se plaindra Last-modified header missing
; c'est exactement la situation décrite.
Lors de l' exécution Wget avec -r
ou -p
, mais sans -N
, -nd
ou-nc
, le re-téléchargement d'un fichier entraînera la nouvelle copie en écrasant simplement l'ancienne.
Ainsi, l'ajout -nc
empêchera ce comportement, au lieu de cela, la version d'origine sera préservée et toutes les nouvelles copies sur le serveur seront ignorées.
La réponse que je cherchais est sur https://unix.stackexchange.com/a/9557/114862 .
L'utilisation de l'
-c
indicateur lorsque le fichier local est de taille supérieure ou égale à la version du serveur évitera un nouveau téléchargement.
wget -i filelist.txt -c
va reprendre l'échec du téléchargement d'une liste de fichiers.
-nc
n'empêche pas l'envoi de la requête HTTP et le téléchargement ultérieur du fichier. Il ne fait rien après le téléchargement du fichier s'il a déjà été entièrement récupéré. Existe-t-il de toute façon d'empêcher de faire la requête HTTP si le fichier existe déjà? stackoverflow.com/questions/33203898/…