Назад | Перейти на главную страницу

Как разрешить wget перезаписывать файлы

С помощью wget команда, как мне разрешить / дать команду перезаписывать мой локальный файл каждый раз, независимо от того, сколько раз я вызываю.

Допустим, я хочу скачать файл из местоположения: http: //server/folder/file1.html

Здесь, когда я говорю wget http://server/folder/file1.html, Я хочу этот file1.html быть перезаписанным в моей локальной системе, независимо от того, когда он был изменен, уже загружен и т. д. Мое намерение / вариант использования заключается в том, что когда я вызываю wget, я очень уверен, что хочу заменить / перезаписать существующий файл.

Я пробовал следующие варианты, но каждый вариант предназначен / предназначен для какой-то другой цели.

  1. -nc => --no-clobber
  2. -N => Включить отметку времени
  3. -r => Включить рекурсивное извлечение

Этот вариант работает

wget -N http://server/folder/file1.html

Информация

-N,  --timestamping            don't re-retrieve files unless newer than
                               local.
wget -q http://www.whatever.com/filename.txt -O /path/filename.txt 

-q - это тихий режим, поэтому вы можете добавить его в cron без вывода команды

Использовать curl вместо?

curl http://server/folder/file1.html > file1.html

Непроверенный: возможно, вы сможете работать с wget -r --level=0.

Другая возможность: curl -O перезаписывает (но использует другой способ выбора имени файла, который может иметь значение, а может и не иметь для вас значения).

Я не думаю, что вы сможете это сделать, если вы также не загрузите каталоги (поэтому передайте флаг -x). Если вы знаете, что это за файл, вы можете использовать -O filename, например:
wget http://yourdomain.com/index.html -O index.html

Почему бы не поместить небольшую обертку вокруг wget в свой скрипт?

Сценарий может переместить все файлы во временное место, а затем получить удаленные файлы / веб-страницы.

В случае успеха удалите файлы во временном расположении. В случае неудачи переместите файлы назад и выдайте ошибку.

Нет простого способа сделать то, что вы хотите, используя только wget, если вы не знаете конкретно имена всех файлов, и в этом случае опция -O позволит вам принудительно указать имя файла загруженного файла.