Команда «-c»(—continue) WGET

Команда «-c»(—continue) WGET

Продолжайте получать частично загруженный файл. Это полезно, когда вы хотите завершить загрузку, начатую предыдущим экземпляром Wget, или другой программой.

Например:

wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z

Если в текущем каталоге есть файл с именем ls-lR.Z, Wget предположит, что это первая часть удаленного файла, и попросит сервер продолжить извлечение со смещения, равного длине локального файла ,

Обратите внимание, что вам не нужно указывать эту опцию, если вы просто хотите, чтобы текущий вызов Wget повторил загрузку файла, если соединение будет потеряно на полпути. Это поведение по умолчанию.

 

‘-c’ влияет только на возобновление загрузки, начатую до этого вызова Wget, и чьи локальные файлы все еще сидят.

Без «-c» предыдущий пример просто загрузил удаленный файл в ls-lR.Z.1, оставив файл с усеченным ls-lR.Z.

Если вы используете ‘-c’ в непустом файле, а сервер не поддерживает постоянную загрузку, Wget перезапустит загрузку с нуля и полностью перезапишет существующий файл.

Начиная с Wget 1.7, если вы используете «-c» в файле с равным размером, как тот, что на сервере, Wget откажется загрузить файл и распечатать пояснительное сообщение. То же самое происходит, когда файл меньше на сервере, чем локально (предположительно, потому что он был изменен на сервере с момента последней попытки загрузки), потому что «продолжение» не имеет смысла, загрузка не происходит.

На другой стороне монеты, при использовании ‘-c’, любой файл, который больше на сервере, чем локально, будет считаться неполной загрузкой и только (длина (удаленная) длина (локальная)) байты будут загружены и привязаны к конец локального файла. Такое поведение может быть желательно в некоторых случаях, например, вы можете использовать «wget -c» для загрузки только новой части, которая была добавлена ​​в коллекцию данных или файл журнала.

Однако, если файл больше на сервере, потому что он был изменен, а не просто добавлен, вы получите искаженный файл. Wget не имеет возможности проверить, что локальный файл действительно является допустимым префиксом удаленного файла. Вы должны быть особенно осторожны при использовании ‘-c’ в сочетании с ‘-r’, так как каждый файл будет считаться кандидатом «неполной загрузки».

Другой пример, где вы получите искаженный файл, если вы попытаетесь использовать «-c», — это если у вас есть хромый HTTP-прокси, который вставляет строку «переадресованность прерывания» в локальный файл. В будущем опция «откат» может быть добавлена ​​для решения этого дела.

Обратите внимание, что ‘-c’ работает только с FTP-серверами и с HTTP-серверами, которые поддерживают заголовок Range.