Пропустить загрузку, если файлы существуют в wget? - PullRequest
165 голосов
/ 09 февраля 2011

Это самый простой пример запуска wget:

wget http://www.example.com/images/misc/pic.png

, но как заставить wget пропустить загрузку, если pic.png уже доступен?

Ответы [ 4 ]

232 голосов
/ 09 февраля 2011

Попробуйте следующий параметр:

-nc, --no-clobber: пропустить загрузки, которые будут загружены на существующие файлы.

Пример использования:

wget -nc http://example.com/pic.png
171 голосов
/ 30 мая 2013

Опция -nc, --no-clobber - не лучшее решение, поскольку более новые файлы не будут загружаться.Вместо этого следует использовать -N, который будет загружать и перезаписывать файл, только если на сервере установлена ​​более новая версия, поэтому правильный ответ:

wget -N http://www.example.com/images/misc/pic.png

Затем запустите Wget с -N, с илибез -r или -p решение о том, загружать или нет более новую копию файла, зависит от локальной и удаленной отметки времени и размера файла.-nc нельзя указывать одновременно с -N.

-N, --timestamping: включить отметку времени.

23 голосов
/ 09 февраля 2011

При запуске Wget с -r или -p, но без -N, -nd или -nc повторная загрузка файла приведет к тому, что новая копия будет просто перезаписывать старую.

Таким образом, добавление -nc предотвратит это поведение, вместо этого будет сохранена исходная версия и проигнорированы все более новые копии на сервере.

См. Дополнительную информацию в GNU.

10 голосов
/ 08 ноября 2017

Ответ, который я искал, на https://unix.stackexchange.com/a/9557/114862.

Использование флага -c, когда локальный файл имеет больший или равный размер с версией сервера, позволит избежать повторной загрузки.

...