Так, це -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.
Caveats (з коментарів jofel)
Якщо файл змінився на сервері, -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 ...
. Чудово, зараз ви знову побачите файл, але його вже завантажили.
Причина: чому повторна завантаження?
тому що його розмір змінився на більший розмір, ніж старий завантажений файл і більше нічого.