Ich habe ein Webverzeichnis, in dem ich einige Konfigurationsdateien speichere. Ich möchte wget verwenden, um diese Dateien herunterzuziehen und ihre aktuelle Struktur beizubehalten. Das Remote-Verzeichnis sieht beispielsweise folgendermaßen aus:
http://mysite.com/configs/.vim/
.vim enthält mehrere Dateien und Verzeichnisse. Ich möchte das mit wget auf dem Client replizieren. Es scheint nicht die richtige Kombination von Wget-Flags zu finden, um dies zu erreichen. Irgendwelche Ideen?
So rekursiv ein Verzeichnis herunterladen, das index.html * -Dateien ablehnt und ohne den Hostnamen, das übergeordnete Verzeichnis und die gesamte Verzeichnisstruktur herunterlädt:
quelle
Für alle anderen, die ähnliche Probleme haben. Es folgt Wget, mit
robots.txt
dem Sie die Site möglicherweise nicht abrufen können. Keine Sorge, Sie können es ausschalten:http://www.gnu.org/software/wget/manual/html_node/Robot-Exclusion.html
quelle
Sie sollten das Flag -m (Spiegel) verwenden, da dies darauf achtet, nicht mit Zeitstempeln herumzuspielen und auf unbestimmte Zeit zu rekursieren.
Wenn Sie die von anderen in diesem Thread erwähnten Punkte hinzufügen, wäre dies:
quelle
Hier ist der vollständige Befehl wget, mit dem ich Dateien aus dem Verzeichnis eines Servers heruntergeladen habe (ignoriert
robots.txt
):quelle
Wenn Sie
--no-parent
nicht helfen, können Sie die--include
Option verwenden.Verzeichnisstruktur:
Und Sie möchten herunterladen,
downloads/good
aber nichtdownloads/bad
Verzeichnis:quelle
funktioniert bei mir.
Vielleicht haben Sie eine .wgetrc, die sie stört?
quelle
Verwenden Sie den folgenden Befehl, um ein Verzeichnis rekursiv mit Benutzername und Kennwort abzurufen:
quelle
Wget 1.18 funktioniert möglicherweise besser, z. B. wurde ich von einem Fehler in Version 1.12 gebissen, bei dem ...
... ruft nur index.html anstelle aller Dateien ab.
Die Problemumgehung bestand darin, 301 Weiterleitungen zu bemerken und den neuen Speicherort auszuprobieren. Angesichts der neuen URL erhielt wget alle Dateien im Verzeichnis.
quelle
Alles was Sie brauchen sind zwei Flags, eines ist
"-r"
für die Rekursion und"--no-parent"
(oder-np
) um nicht in das'.'
und zu gehen".."
. So was:wget -r --no-parent http://example.com/configs/.vim/
Das ist es. Es wird in den folgenden lokalen Baum heruntergeladen :
./example.com/configs/.vim
. Wenn Sie jedoch die ersten beiden Verzeichnisse nicht möchten, verwenden Sie das zusätzliche Flag,--cut-dirs=2
wie in früheren Antworten vorgeschlagen:wget -r --no-parent --cut-dirs=2 http://example.com/configs/.vim/
Und es wird nur Ihren Dateibaum in herunterladen
./.vim/
Tatsächlich habe ich die erste Zeile aus dieser Antwort genau aus dem wget-Handbuch erhalten , sie haben gegen Ende von Abschnitt 4.3 ein sehr sauberes Beispiel.
quelle
Die folgende Option scheint die perfekte Kombination zu sein, wenn es um rekursiven Download geht:
wget -nd -np -P / dest / dir --rekursives http: // url / dir1 / dir2
Relevante Ausschnitte aus Manpages zur Vereinfachung:
quelle
Sie sollten dies einfach durch Hinzufügen eines -r tun können
quelle
Diese Version wird rekursiv heruntergeladen und erstellt keine übergeordneten Verzeichnisse.
Verwendungszweck:
~/.bashrc
Terminal hinzufügen oder einfügenwgetod "http://example.com/x/"
quelle