
Eu tenho um arquivo de configuração que consiste em uma lista de URIs que desejo baixar. Por exemplo,
http://xyz.abc.com/Dir1/Dir3/sds.exe
http://xyz.abc.com/Dir2/Dir4/jhjs.exe
http://xyz.abc.com/Dir1/itr.exe
Quero ler o arquivo de configuração e copiar cada URL, mas ao mesmo tempo criar a mesma estrutura de diretórios do host. Por exemplo, para a primeira linha do arquivo de configuração, quero criar a estrutura de diretórios Dir1/Dir3 em minha máquina local (se não existir) e depois copiar sds.exe para .../Dir1/Dir3/
Descobri que posso baixar todos os URLs em um arquivo usando 'wget -i', mas como posso criar a estrutura de diretório correspondente com isso
Responder1
De man wget
:
-x, --force-diretórios:
[...]
criar uma hierarquia de diretórios, mesmo que não fosse criada de outra forma. Por exemplo, wget -xhttp://fly.srk.fer.hr/robots.txtsalvará o arquivo baixado em fly.srk.fer.hr/robots.txt.
Responder2
Para obter a estrutura que você está solicitando, sugiro usar -nH e também -x.
Isso removerá o nome do host e também criará a estrutura de diretórios esperada.
por exemplo
wget -x -nH http://xyz.abc.com/Dir1/Dir3/sds.exe
- 'Dir1/Dir3/sds.exe' saved [1234]
Na página de manual:
-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...