Faça o download de arquivos e crie a mesma estrutura de arquivos que a fonte

14

Eu tenho um arquivo de configuração que consiste na lista de URIs que eu quero 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

Eu quero ler o arquivo de configuração e copiar cada URL, mas ao mesmo tempo criar a mesma estrutura de diretório que no host. Por exemplo, para a primeira linha no arquivo de configuração, desejo criar a estrutura de diretórios Dir1 / Dir3 em minha máquina local (se ela não existir) e, em seguida, copiar sds.exe para ... / Dir1 / Dir3 /

Descobri que posso fazer o download de todas as URLs em um arquivo usando 'wget -i', mas como posso criar a estrutura de diretório correspondente com isso

    
por NGambit 12.04.2013 / 21:12

2 respostas

20

De man wget :

-x, --force-directories:

[...]

create a hierarchy of directories, even if one would not have been created otherwise. E.g. wget -x http://fly.srk.fer.hr/robots.txt will save the downloaded file to fly.srk.fer.hr/robots.txt.

    
por 12.04.2013 / 21:25
11

Para obter a estrutura que você está pedindo, sugiro usar -nH e -x.

Isso removerá o nome do host, além de 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]

Da página do 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...
    
por 10.06.2016 / 20:41