Да, это -c
вариант.
--continue
Continue getting a partially-downloaded file. This is useful when you want to
finish up a download started by a previous instance of Wget, or by another
program.
Если файл такой же, вторая попытка загрузки остановится.
$ wget -c https://cdn.sstatic.net/askubuntu/img/logo.png
...
Saving to: ‘logo.png’
...
$ wget -c https://cdn.sstatic.net/askubuntu/img/logo.png
...
The file is already fully retrieved; nothing to do.
Предостережения (из комментариев Джофеля)
Если файл изменился на сервере, -c
опция может дать неверные результаты.
С помощью -c
wget просто запрашивает у сервера любые данные, кроме части уже загруженного файла, и ничего больше. Он не проверяет, было ли какое-либо изменение в части файла, который уже загружен. Таким образом, вы можете испортить файл, который представляет собой смесь старого и нового файла.
Локальный тест
Вы можете проверить это, запустив простой локальный веб-сервер следующим образом (благодаря @roadmr «S ответа ):
Откройте окно терминала и введите:
cd /path/to/parent-download-dir/
python -m SimpleHTTPServer
Теперь откройте другой терминал и выполните:
wget -c http://localhost:8000/filename-to-download
Обратите внимание, что filename-to-download
это файл, в /path/to/parent-download-dir/
котором мы хотим его скачать.
Теперь, если вы запустите команду wget несколько раз, вы увидите:
The file is already fully retrieved; nothing to do.
Хорошо, теперь перейдите в /path/to/parent-download-dir/
каталог и добавьте что-нибудь в исходный файл, например, если это текстовый файл, добавьте в него простую дополнительную строку и сохраните файл. Теперь попробуйте с wget -c ...
. Отлично, теперь вы увидите, что файл снова загружается, но вы уже скачали его раньше.
Причина: зачем перезагружать?
потому что его размер изменился на больший размер, чем старый загруженный файл и ничего больше.