694 Stimmen

Verwenden von wget, um rekursiv ein Verzeichnis mit beliebigen Dateien darin zu holen

Ich habe ein Webverzeichnis, in dem ich einige Konfigurationsdateien speichere. Ich möchte wget verwenden, um diese Dateien herunterzuladen und ihre aktuelle Struktur beizubehalten. Das Remote-Verzeichnis sieht zum Beispiel so aus:

http://mysite.com/configs/.vim/

.vim enthält mehrere Dateien und Verzeichnisse. Ich möchte das auf dem Client mit wget replizieren. Ich scheine nicht die richtige Kombination von wget-Flags zu finden, um dies zu erreichen. Hat jemand eine Idee?

1197voto

Paige Ruten Punkte 164391

Sie müssen die -np / --no-parent Option zu wget (zusätzlich zu -r / --recursive ), andernfalls folgt er dem Link im Verzeichnisindex auf meiner Website zum übergeordneten Verzeichnis. Der Befehl würde also wie folgt aussehen:

wget --recursive --no-parent http://example.com/configs/.vim/

Um das Herunterladen der automatisch generierten index.html Dateien, verwenden Sie die -R / --reject Option:

wget -r -np -R "index.html*" http://example.com/configs/.vim/

145voto

Sri Punkte 4217

Um ein Verzeichnis rekursiv herunterzuladen, das index.html*-Dateien ablehnt und ohne den Hostnamen, das übergeordnete Verzeichnis und die gesamte Verzeichnisstruktur herunterlädt:

wget -r -nH --cut-dirs=2 --no-parent --reject="index.html*" http://mysite.com/dir1/dir2/data

126voto

Sean Villani Punkte 1324

Für alle anderen, die ähnliche Probleme haben. Wget folgt robots.txt die es Ihnen möglicherweise nicht erlaubt, auf die Website zuzugreifen. Keine Sorge, Sie können es ausschalten:

wget -e robots=off http://www.example.com/

http://www.gnu.org/software/wget/manual/html_node/Robot-Exclusion.html

46voto

SamGoody Punkte 12604

Sie sollten das Flag -m (mirror) verwenden, da dies dafür sorgt, dass die Zeitstempel nicht durcheinander gebracht werden und unbegrenzt rekursiert werden kann.

wget -m http://example.com/configs/.vim/

Wenn man die Punkte hinzufügt, die von anderen in diesem Thread erwähnt wurden, wäre es das:

wget -m -e robots=off --no-parent http://example.com/configs/.vim/

41voto

Erich Eichinger Punkte 1858

Hier ist der vollständige wget-Befehl, der bei mir funktioniert hat, um Dateien aus dem Verzeichnis eines Servers herunterzuladen (ignoriert robots.txt ):

wget -e robots=off --cut-dirs=3 --user-agent=Mozilla/5.0 --reject="index.html*" --no-parent --recursive --relative --level=1 --no-directories http://www.example.com/archive/example/5.3.0/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X