С помощью wget
команда, как мне разрешить / дать команду перезаписывать мой локальный файл каждый раз, независимо от того, сколько раз я вызываю.
Допустим, я хочу скачать файл из местоположения: http: //server/folder/file1.html
Здесь, когда я говорю wget http://server/folder/file1.html
, Я хочу этот file1.html
быть перезаписанным в моей локальной системе, независимо от того, когда он был изменен, уже загружен и т. д. Мое намерение / вариант использования заключается в том, что когда я вызываю wget, я очень уверен, что хочу заменить / перезаписать существующий файл.
Я пробовал следующие варианты, но каждый вариант предназначен / предназначен для какой-то другой цели.
Этот вариант работает
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 позволит вам принудительно указать имя файла загруженного файла.