Pobieranie plików za pomocą wget

Odpowiedzi:

22

Myślę, że twoja ?interpretacja jest interpretowana przez powłokę (Korekta przez vinc17: bardziej prawdopodobne jest to, że &jest interpretowana).

Wypróbuj proste cytaty wokół adresu URL:

wget 'http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file'

Zauważ, że żądany plik jest .tarplikiem, ale powyższe polecenie zapisze go jako index.html?acc=GSE48191&format=file. Aby mieć poprawną nazwę, możesz zmienić nazwę na .tar:

mv 'index.html?acc=GSE48191&format=file' GSE4819.tar

Lub możesz podać nazwę jako opcję wget:

wget -O GSE48191.tar 'http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file'

Powyższe polecenie zapisze pobrany plik jako GSE48191.tar bezpośrednio.

Qeole
źródło
Zostaje pobrany, ale nie jest to nawet katalog. Jeśli spojrzysz na link ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE48191 , możesz zauważyć, że istnieje wiele plików .gz. Nadal nie mogę uzyskać do nich dostępu?
user3138373,
Podejrzewam, że OP używa powłoki, która ignoruje ?jako symbol wieloznaczny, ponieważ nic nie pasuje. Główny problem polega na &tym, że uruchomi w tle część, która poprzedza (a więc z niekompletnym adresem URL). Ale rozwiązanie jest takie samo: zacytować adres URL.
vinc17
Dzięki tobie terdon i vinc za edycję / poprawki. @ user3138373: Nie mogę znaleźć twoich plików .gz na podanych linkach, czy możesz ponownie powiedzieć, jakiego adresu URL używasz, aby je zobaczyć / uzyskać do nich dostęp?
Qeole
1
@ użytkownik3138373 pobrany plik jest archiwum ( .tarplikiem) zawierającym pliki .gz. Po pobraniu uruchom, tar xvf GSE4819.taraby rozwinąć archiwum i uzyskać dostęp do plików.
terdon
3

Innym sposobem, który może działać, jest użycie tego polecenia:

wget -O nameOfTar.tar "http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file"

-OPolecenie podać nazwę aby pobrać się.

Oczywiście twoim początkowym problemem jest to, że „&” był interpretowany przez powłokę, a otaczanie adresu URL podwójnymi cudzysłowami rozwiązuje problem.

ryekayo
źródło
2
-O Opcja służy do określenia nazwy pliku, w którym zapisywane są pobrane dane. Nie ma wpływu na pobrane dane (może o to ci chodziło, ale nie było to jasne).
Qeole,
Tak przepraszam,
dokonam
Nie jestem pewien, dlaczego to zostało odrzucone.
ryekayo
3
Nie przegłosowałem, ale prawdopodobnie dlatego, że twoje rozwiązanie nie rozwiązuje problemu: &jest interpretowane przez powłokę, a pobieranie .tarpliku nie powiedzie się.
Qeole,
0

wget -O „name-you-want-to-save-as.format” http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file

To powinno dostarczyć ci plik, który chcesz pobrać do bieżącego katalogu, w którym się znajdujesz.

Samman Bikram Thapa
źródło
wget: missing URLco wgetodpowiada temu, ponieważ brakuje argumentu -O. Myślę też, że to prawdopodobnie nie rozwiązuje problemu PO.
Celada,
Ponieważ adres URL zawiera &, ta odpowiedź nie działa, chyba że dodasz adres URL ""lub w jego ''pobliżu.
Aaron Franke
0

Od $ curl -G http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191">here</a>.</p>
</body></html>

Więc musisz to zrobić

wget https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191

Zwróć uwagę na „s” po http. Sam spróbowałem i zadziałało dobrze.

Litera M.
źródło