Я пытаюсь получить файлы из HTTP с помощью команды wget.

Мне нужен каждый файл в:

http://9.9.9.9/a/b/c/d/

который не является каталогом.

Я пытался это сделать:

-A log,html,tgz,zip,txt,css,js

Кроме того, с этого момента:

http://9.9.9.9/a/b/c/d/needed_folder/

Мне нужно рекурсивно все файлы там (внутри него есть несколько подпапок) я попробовал с помощью:

-I /needed_folder

Я использовал следующую команду:

wget -r -A log,html,tgz,zip,txt,css,js -I /needed_folder -np -nH --cut-dirs=4 -R index.html http://9.9.9.9/a/b/c/d/needed_folder/some_files_needed/

Это получить только файл index.html.1 Что не так?

1 ответ1

0

Это один из способов, с помощью которых сеть не похожа на файловую систему: URL-адреса не являются путями, даже если они часто сопоставляются с путями. И, в общем случае, даже если они это делают, у wget нет способа узнать, кто они. Чтобы объяснить, почему ваша команда, в частности, не работает:

  • -r или --recursive означает, что wget загрузит указанные вами URL-адреса, проанализирует разметку, чтобы найти ссылки на другие файлы, а затем загрузит их, повторяя по умолчанию пять раз (что может привести к миллиардам ссылок, если он следует по ссылкам за пределами сайт).
  • -A/--accept , -I/--include-directories= и -R/--reject указать шаблоны для фильтрации набора выше.
  • -np/--no --no-parent гарантирует, что загружаются только те URL, которые начинаются с указанных вами URL.
  • -nH/--no --no-host-directories помещает файлы со всех хостов в один каталог.
  • --cut-dirs=number обобщает вышеприведенное, чтобы не создавать несколько каталогов в локальном хранилище при загрузке файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .