
Ich habe eine Konfigurationsdatei, die aus einer Liste der URIs besteht, die ich herunterladen möchte. Zum Beispiel:
http://xyz.abc.com/Dir1/Dir3/sds.exe
http://xyz.abc.com/Dir2/Dir4/jhjs.exe
http://xyz.abc.com/Dir1/itr.exe
Ich möchte die Konfigurationsdatei lesen und jede URL kopieren, aber gleichzeitig dieselbe Verzeichnisstruktur wie auf dem Host erstellen. Beispielsweise möchte ich für die erste Zeile in der Konfigurationsdatei die Verzeichnisstruktur Dir1/Dir3 auf meinem lokalen Computer erstellen (falls sie nicht existiert) und dann sds.exe nach .../Dir1/Dir3/ kopieren.
Ich habe festgestellt, dass ich alle URLs in einer Datei mit 'wget -i' herunterladen kann, aber wie kann ich damit die entsprechende Verzeichnisstruktur erstellen?
Antwort1
Aus man wget
:
-x, --force-directories:
[...]
Erstellen Sie eine Verzeichnishierarchie, auch wenn sonst keine erstellt worden wäre. Beispiel: wget -xhttp://fly.srk.fer.hr/robots.txtspeichert die heruntergeladene Datei unter fly.srk.fer.hr/robots.txt.
Antwort2
Um die gewünschte Struktur zu erhalten, würde ich die Verwendung von -nH und -x vorschlagen.
Dadurch wird der Hostname entfernt und die erwartete Verzeichnisstruktur erstellt.
z.B
wget -x -nH http://xyz.abc.com/Dir1/Dir3/sds.exe
- 'Dir1/Dir3/sds.exe' saved [1234]
Aus der Manpage:
-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...