Baixe arquivos e crie a mesma estrutura de arquivos da fonte

Baixe arquivos e crie a mesma estrutura de arquivos da fonte

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...

informação relacionada