Скажите wget для зеркалирования частей пути URI к папкам

381
ComFreek

У меня есть список URI в файле uris.txt:

http://example.com/file1.pdf
http://example.com/file2.pdf
http://example.com/Folder/file3.pdf
http://example.com/Folder/Subfolder/file4.pdf

Полученная структура каталогов на моем жестком диске должна быть следующей:

| |-file1.pdf |-file2.pdf |-Folder |-file3.pdf |-Subfolder |-file4.pdf 

Моя текущая команда: wget -i uris.txt -P downloads

К сожалению, wget выравнивает все каталоги, т. Е. Имя файла определяется путем объединения базового каталога (заданного параметром -P в командной строке) и последней части пути URI.

Поддержание структуры каталогов, которые обслуживает сервер, возможно, хотя и только в рекурсивном режиме, который работает только на HTML и CSS, а не на заданном списке URI.

0
Вы можете использовать некоторые regex-fu, чтобы преобразовать список файлов в более конкретные командные строки wget, а затем выполнить файл. Neil Smithline 8 лет назад 0
@NeilSmithline Я на самом деле генерирую список с помощью сценария Node.js, который я написал. Я надеялся, что wget имеет некоторые встроенные, готовые к использованию функции, включая работу со специальными символами, которые не разрешены / не предпочтительны в именах каталогов. ComFreek 8 лет назад 0

2 ответа на вопрос

1
meuh

You can get this with the extra options -x or --force-directories and -nH or --no-host-directories to avoid the example.com top directory.

0
Hannu

Suggested reading that will provide the answer in a future-proof way:

man wget

Look for --no-host-directories and --cut-dirs=number

--no-host-directories
will make wget skip creating a dir named "example.com" to put all data in.

--cut-dirs=number
Will do the same, for number subdirs, counting from the top.

Поправьте меня, если я ошибаюсь, но разве эти опции не делают наоборот, то есть уменьшают количество каталогов? На самом деле, вызов wget с параметрами `--no-host-directoryies --cut-dirs = 10` (10 - произвольно выбранное значение) не дает разницы по сравнению с выполнением без них. ComFreek 8 лет назад 0

Похожие вопросы