Это простейший пример запуска wget:
wget http://www.example.com/images/misc/pic.png
но как сделать так, чтобы wget пропускал загрузку, если pic.png
он уже доступен?
Это простейший пример запуска wget:
wget http://www.example.com/images/misc/pic.png
но как сделать так, чтобы wget пропускал загрузку, если pic.png
он уже доступен?
Ответы:
Попробуйте следующий параметр:
-nc
,--no-clobber
: Пропустить загрузки , которые приведут к существующим файлам.
Пример использования:
wget -nc http://example.com/pic.png
[ ! -e "$(basename $URL)" ] && wget $URL
--recursive
опцию.
Опция -nc
, --no-clobber
не лучшее решение, поскольку новые файлы не будут загружены. -N
Вместо этого следует использовать, который будет загружать и перезаписывать файл, только если на сервере установлена более новая версия, поэтому правильный ответ:
wget -N http://www.example.com/images/misc/pic.png
Затем, запустив Wget с -N, с или без
-r
или-p
, решение о том, загружать или нет более новую копию файла, зависит от локальной и удаленной метки времени и размера файла.-nc
не может быть указан одновременно с-N
.
-N
,--timestamping
: Включить отметку времени.
-N
может произойти сбой, и wget всегда будет загружен заново. Так что иногда -nc
лучшее решение.
wget
будет жаловаться Last-modified header missing
; это как раз описанная ситуация.
При запуске Wget с -r
или -p
, но без -N
, -nd
или-nc
повторная загрузка файла приведет к тому, что новая копия будет просто перезаписывать старую.
Таким образом, добавление -nc
предотвратит это поведение, вместо этого сохраняя исходную версию и игнорируя любые новые копии на сервере.
Ответ, который я искал, находится на https://unix.stackexchange.com/a/9557/114862 .
Использование
-c
флага, когда локальный файл имеет больший или равный размер с версией сервера, позволит избежать повторной загрузки.
wget -i filelist.txt -c
возобновит неудачную загрузку списка файлов.
-nc
не препятствует отправке HTTP-запроса и последующей загрузке файла. Он просто ничего не делает после загрузки файла, если файл уже был полностью восстановлен. Есть ли способ предотвратить отправку HTTP-запроса, если файл уже существует? stackoverflow.com/questions/33203898/…