Mam katalog internetowy, w którym przechowuję niektóre pliki konfiguracyjne. Chciałbym użyć wget do ściągnięcia tych plików i utrzymania ich obecnej struktury. Na przykład katalog zdalny wygląda następująco:
http://mysite.com/configs/.vim/
.vim przechowuje wiele plików i katalogów. Chcę powielić to na kliencie za pomocą wget. Nie można znaleźć odpowiedniej kombinacji flag wget, aby to zrobić. Jakieś pomysły?
Aby pobrać katalog rekurencyjnie, który odrzuca pliki index.html * i pliki do pobrania bez nazwy hosta, katalogu nadrzędnego i całej struktury katalogów:
źródło
Dla każdego, kto ma podobne problemy. Wget śledzi,
robots.txt
co może nie pozwolić ci pobrać strony. Nie martw się, możesz to wyłączyć:http://www.gnu.org/software/wget/manual/html_node/Robot-Exclusion.html
źródło
Powinieneś użyć flagi -m (mirror), ponieważ pozwala to nie zadzierać ze znacznikami czasu i powtarza się w nieskończoność.
Jeśli dodasz punkty wspomniane przez innych w tym wątku, będzie to:
źródło
Oto kompletne polecenie wget, które zadziałało dla mnie, aby pobrać pliki z katalogu serwera (ignorowanie
robots.txt
):źródło
Jeśli
--no-parent
nie pomoże, możesz użyć--include
opcji.Struktura katalogu:
I chcesz pobrać,
downloads/good
ale niedownloads/bad
katalog:źródło
pracuje dla mnie.
Być może masz plik .wgetrc, który go zakłóca?
źródło
Aby rekurencyjnie pobrać katalog z nazwą użytkownika i hasłem, użyj następującego polecenia:
źródło
Wget 1.18 może działać lepiej, np. Ugryzł mnie błąd wersji 1.12, w którym ...
... pobiera tylko index.html zamiast wszystkich plików.
Obejściem problemu było zauważenie około 301 przekierowań i wypróbowanie nowej lokalizacji - biorąc pod uwagę nowy adres URL, wget ma wszystkie pliki w katalogu.
źródło
Wszystko czego potrzebujesz to dwie flagi, jedna służy
"-r"
do rekurencji i"--no-parent"
(lub-np
), aby nie wchodzić w'.'
i".."
. Lubię to:wget -r --no-parent http://example.com/configs/.vim/
Otóż to. Będzie pobrać pod następującym lokalnego drzewa:
./example.com/configs/.vim
. Jeśli jednak nie chcesz pierwszych dwóch katalogów, użyj dodatkowej flagi,--cut-dirs=2
jak sugerowano we wcześniejszych odpowiedziach:wget -r --no-parent --cut-dirs=2 http://example.com/configs/.vim/
I pobierze twoje drzewo plików tylko do
./.vim/
W rzeczywistości pierwszy wiersz otrzymałem od tej odpowiedzi dokładnie z instrukcji wget , mają bardzo czysty przykład pod koniec sekcji 4.3.
źródło
Następująca opcja wydaje się być idealną kombinacją w przypadku pobierania rekurencyjnego:
wget -nd -np -P / dest / dir --recursive http: // url / dir1 / dir2
Odpowiednie fragmenty stron podręcznika dla wygody:
źródło
Powinieneś być w stanie to zrobić po prostu dodając -r
źródło
Ta wersja pobiera rekurencyjnie i nie tworzy katalogów nadrzędnych.
Stosowanie:
~/.bashrc
lub wklej do terminalawgetod "http://example.com/x/"
źródło