Weisen Sie wget an, die Teile des Pfads einer URI in Ordner zu spiegeln

Weisen Sie wget an, die Teile des Pfads einer URI in Ordner zu spiegeln

Ich habe eine Liste von URIs in einer Datei uris.txt:

http://example.com/file1.pdf
http://example.com/file2.pdf
http://example.com/Ordner/file3.pdf
http://example.com/Ordner/Unterordner/file4.pdf

Die resultierende Verzeichnisstruktur auf meiner Festplatte soll wie folgt aussehen:

|
|-file1.pdf
|-file2.pdf
|-Folder
  |-file3.pdf
  |-Subfolder
    |-file4.pdf

Mein aktueller Befehl ist:wget -i uris.txt -P downloads

Leider vereinfacht wget alle Verzeichnisse, d. h. der Dateiname wird durch die Verkettung des Basisverzeichnisses (angegeben durch -P in der Befehlszeile) und des letzten Teils des URI-Pfads bestimmt.

Die Verwaltung der Verzeichnisstruktur, die ein Server bedient, ist möglich, allerdings nur mit derrekursiver Modus, das nur mit HTML und CSS und nicht mit einer vorgegebenen Liste von URIs funktioniert.

Antwort1

Sie können dies mit den zusätzlichen Optionen -xoder --force-directoriesund -nHoder erreichen --no-host-directories, um das oberste Verzeichnis von example.com zu vermeiden.

Antwort2

Empfohlene Lektüre, die die Antwort in einerzukunftssicherWeg:

man wget

Suchen --no-host-directoriesund--cut-dirs=number

--no-host-directories
bewirkt, dass wget das Erstellen eines Verzeichnisses mit dem Namen „example.com“ zum Ablegen aller Daten überspringt.

--cut-dirs=Nummer
Das Gleiche wird für Unterverzeichnisse gemacht number, von oben gezählt.

verwandte Informationen