
У меня есть файл конфигурации, который содержит список URI, которые я хочу загрузить. Например,
http://xyz.abc.com/Dir1/Dir3/sds.exe
http://xyz.abc.com/Dir2/Dir4/jhjs.exe
http://xyz.abc.com/Dir1/itr.exe
Я хочу прочитать файл конфигурации и скопировать каждый URL, но в то же время создать ту же структуру каталогов, что и на хосте. Например, для первой строки в файле конфигурации я хочу создать структуру каталогов Dir1/Dir3 на моей локальной машине (если она не существует), а затем скопировать sds.exe в .../Dir1/Dir3/
Я обнаружил, что могу загрузить все URL-адреса в файл с помощью «wget -i», но как мне создать соответствующую структуру каталогов с помощью этого?
решение1
От man wget
:
-x, --force-directories:
[...]
создать иерархию каталогов, даже если в противном случае она не была бы создана. Например, wget -xhttp://fly.srk.fer.hr/robots.txtсохранит загруженный файл в fly.srk.fer.hr/robots.txt.
решение2
Чтобы получить нужную вам структуру, я бы посоветовал использовать -nH и -x.
Это приведет к удалению имени хоста, а также созданию ожидаемой структуры каталогов.
например
wget -x -nH http://xyz.abc.com/Dir1/Dir3/sds.exe
- 'Dir1/Dir3/sds.exe' saved [1234]
Из страницы руководства:
-nH
--no-host-directories
Disable generation of host-prefixed directories. By default, invoking Wget with -r http://fly.srk.fer.hr/ will create a structure of directories beginning with fly.srk.fer.hr/. This option disables such behavior.
-x
--force-directories
...create a hierarchy of directories, even if one would not have been created otherwise...