Scarica i file e crea la stessa struttura dei file del sorgente


21

Ho un file di configurazione che consiste in un elenco di URI che voglio scaricare. Per esempio,

  http://xyz.abc.com/Dir1/Dir3/sds.exe
  http://xyz.abc.com/Dir2/Dir4/jhjs.exe
  http://xyz.abc.com/Dir1/itr.exe

Voglio leggere il file di configurazione e copiare ogni URL, ma allo stesso tempo creare la stessa struttura di directory dell'host. Ad esempio, per la prima riga nel file di configurazione, voglio creare la struttura di directory Dir1 / Dir3 sul mio computer locale (se non esiste) e quindi copiare sds.exe in ... / Dir1 / Dir3 /

Ho scoperto che posso scaricare tutti gli URL in un file usando 'wget -i' ma come posso creare la struttura di directory corrispondente con quella

Risposte:


27

Da man wget:

-x, --force-directory:

[...]

creare una gerarchia di directory, anche se non sarebbe stata creata diversamente. Ad esempio, wget -x http://fly.srk.fer.hr/robots.txt salverà il file scaricato su fly.srk.fer.hr/robots.txt.


Grazie per la raccomandazione dell'uomo. Dovrei abituarmi ad aiutare me stesso.
NGambit,

Chris: Ma sembra che se avessi fly.srk.fer.hr/dir1/robots.txt, quindi wget -x crea la directory fly.srk.fer.hr e inserisce il file chiamato dir1 / robots.txt. Quello di cui ho bisogno è che crei anche le sottodirectory. cioè salva robots.txt su fly.srk.fer.hr/dir1/
NGambit

@NGambit È impossibile creare un singolo file chiamato dir1/robots.txtsu Unix.
Chris Down,

Hai ragione. Il file di configurazione che stavo usando aveva '\' invece di '/' (dato che era stato analizzato da un altro file basato su Windows) in percorsi di directory che stavano rovinando le cose. Ho appena sostituito '\' con '/' e "wget ​​-x -i nomefile" funziona come un incantesimo
NGambit

2
Una nota a --cut-dirs=N
margine

16

Per ottenere la struttura che stai chiedendo, suggerirei di usare -nH e -x.

Ciò rimuoverà il nome host e creerà la struttura di directory prevista.

per esempio

wget -x -nH http://xyz.abc.com/Dir1/Dir3/sds.exe

- 'Dir1/Dir3/sds.exe' saved [1234]

Dalla pagina man:

-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...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.