2013-06-24 15 views
97

Próbuję pobrać pliki projektu za pomocą wget, ponieważ serwer SVN dla tego projektu nie jest już uruchomiony i mam dostęp tylko do plików za pośrednictwem przeglądarki. Adresy URL bazowe dla wszystkich plików jest taka sama jakJak pobrać cały katalog i podkatalogi za pomocą wget?

http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/ *

Jak mogę używać wget (lub innego podobnego narzędzia), aby pobrać wszystkie pliki w repozytorium, gdzie „tzivi "folder jest folderem głównym i znajduje się pod nim kilka plików i podfolderów (do 2 lub 3 poziomów)?

+3

Nie możesz tego zrobić, jeśli serwer nie ma strony internetowej z listą wszystkich linków do potrzebnych plików. –

+0

znasz nazwy plików? –

+0

no nie wiem nazwy wszystkich plików. Próbowałem wget z opcją rekursywną, ale to też nie działało. To dlatego, że serwer nie ma żadnego pliku index.html, który wymienia wszystkie wewnętrzne linki. – code4fun

Odpowiedz

139

Można to wykorzystać w skorupkach:

wget -r --no-parent http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/ 

parametry są:

-r  //recursive Download 

i

--no-parent // Don´t download something from the parent directory 

Jeśli nie chcesz, aby pobrać całą zawartość, ty może używać:

-l1 just download the directory (tzivi in your case) 

-l2 download the directory and all level 1 subfolders ('tzivi/something' but not 'tivizi/somthing/foo') 

I tak dalej. Jeśli wstawisz opcję -l, wget automatycznie użyje -l 5.

Jeśli wstawisz -l 0, pobierzesz cały Internet, ponieważ wget będzie śledzić każdy znaleziony link.

+17

Świetne, więc dla uproszczenia dla następnego czytelnika: 'wget -r -l1 --no-parent http: // www.stanford.edu/~ boyd/cvxbook/cvxbook_additional_exercises /' było dla mnie odpowiedzią. Dziękuję za odpowiedź. – isomorphismes

+2

Wypróbowałem powyższe polecenie, aby uzyskać wszystkie pliki z 'http: // nazwa_sieci internetowej.com/wp-content/uploads/2009/05', ale dostałem tylko plik' index.html', który nie miał nic. Nie mogę zrozumieć, co przeoczyłem. –

+0

@up: Zwróć uwagę, że wget podąża za linkami, więc potrzebujesz wykazu katalogu;) – sn0w

11

Można to wykorzystać w powłoce:

wget -r -nH --cut-dirs=7 --reject="index.html*" \ 
     http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/ 

parametry są:

-r recursively download 

-nH (--no-host-directories) cuts out hostname 

--cut-dirs=X (cuts out X directories) 
4

użyć polecenia

wget -m www.ilanni.com/nexus/content/ 
0

można również użyć polecenia:

wget --mirror -pc --convert-links -P ./your-local-dir/ http://www.your-website.com 

, aby uzyskać dokładne odbicie witryny internetowej, którą chcesz pobrać.

Powiązane problemy