Pobierz plik ZIP za pomocą polecenia curl


Odpowiedzi:



20

Spróbuj wget zamiast zwijania się: wget http://github.com/ziyaddin/xampp/archive/master.zip


1
Czy downvoter może to wyjaśnić? A może drugi plakat?
don.joey

4
Czy możesz wyjaśnić dlaczego wgetzamiast curl?
Jorge Bucaran,

1
mniej linii poleceń (jeśli cię to obchodzi) - co oznacza mniej opcji, ale największą różnicą jest to, że wget obsługuje rekurencyjne pobieranie
Ran Davidovitz

Nie wiem dlaczego, ale wystąpił błąd unzippodczas pobierania pliku pobranego curli działało dobrze zwget
Dinei

15

Możesz użyć:

curl https://github.com/ziyaddin/xampp/archive/master.zip -O -J -L

Zapisuje jako: xampp-cli-master.zip

  • użyj -Lw przypadku znalezienia przekierowania.
  • użyj -Odo zdalnych nazw plików ( master.zip)
  • użyj -J(użyj z -O), aby zezwolić na zdalną nazwę pliku nagłówka ( xampp-cli-master.zip)


Lub użyj, -oaby utworzyć własną nazwę pliku:

curl https://github.com/ziyaddin/xampp/archive/master.zip -L -o MyFilename.zip

Zapisuje jako: MyFilename.zip

Uwaga: (GitHub obsługuje SSL - użyj https://)


Możesz także użyć curlrc pliku konfiguracyjnego lub aliasu polecenia CURL, curl -O -Laby umożliwić mu działanie podobne do WGET.

Zobacz : https://curl.haxx.se/docs/manpage.html#OPTIONS (patrz: -O , -J , -L , -o )

Zwróć uwagę na ostrzeżenie o używaniu CURL z opcją -J:

Nie ma próby dekodowania% -sekwencji (jeszcze) w podanej nazwie pliku, więc ta opcja może dostarczyć raczej nieoczekiwanych nazw plików.

OSTRZEŻENIE : Rozsądnie korzystaj z tej opcji, szczególnie w systemie Windows. Nieuczciwy serwer może wysłać nazwę biblioteki DLL lub innego pliku, który może zostać automatycznie załadowany przez system Windows lub oprogramowanie innych firm.


5

Jeśli chcesz pobrać plik, użyj wget [option]... [URL]...zamiast tego.

Aby uzyskać więcej informacji dotyczących opcji, po prostu wpisz to w terminalu: man wget

Dla ciebie cel:

wget http://github.com/ziyaddin/xampp/archive/master.zip

Pamiętaj, że plik .zip zostanie zapisany w bieżącym katalogu, w którym się znajdujesz.


1
Pomocne byłoby wyjaśnienie zalet korzystania wgetz curl. Dla każdego, kto zastanawia się nad różnicami między nimi, zobacz tutaj .
Jorge Bucaran,

@JorgeBucaran Przeczytałem porównanie napisane przez autora, curlktóry również przyczynia się do wgetmniejszej roli. Jednym rażącym pominięciem (na podstawie mojego jednorazowego małego projektu) jest to, że wget jest 10 razy szybszy niż zwijanie się (<2 sekundy vs. 12 sekund) przy pobieraniu wschodów i zachodów słońca zhttps://www.timeanddate.com
WinEunuuchs2Unix

Czasami więc, gdy korzystasz z wget, a plik nie jest podawany bezpośrednio, ale zamiast tego adres URL informuje serwis, gdzie zlokalizować i podać plik, to co ostatecznie pobierasz, to html. Zamiast tego
lepiej jest zawijać

3

Aby pobrać pliki w GitHub (lub innej witrynie, która dokonuje przekierowań) curl, musisz przekazać -L(Śledź przekierowania), więc użyj:

curl -L http://github.com/ziyaddin/xampp/archive/master.zip -o xampp.zip


1

„curl -LOk” powoduje, że korzysta z niezabezpieczonych protokołów (-k), wyłącza sprawdzanie certyfikatów SSL (które kończą się niepowodzeniem z powodu nieprawidłowej ścieżki niezgodnej z certyfikatem) i tworzy plik wyjściowy przy użyciu nazwy pliku (-O) zaproponowanej ze zdalnego serwera (także niepewny). Moim zdaniem, serwer powinien być lepiej skonfigurowany, aby w razie potrzeby tworzyć lokalne aliasy przekierowujące, aby uniknąć konieczności przekazywania tej niezgodnej części adresu URL. Ale przekierowanie odbywa się przy użyciu tylko przekierowania HTTP (błąd HTTP 30x), co powoduje problemy z zwijaniem się, które nie następują (domyślnie) to (niezabezpieczone) przekierowanie, a opcja (-k) wyłącza tę kontrolę bezpieczeństwa. Zamiast korzystać z przekierowań HTTP (przeniesionych na stałe), proszę dodać łącze wewnętrzne w systemie plików serwera. Jeśli jest to potrzebne, ponieważ adres URL jest faktycznie hostowany na innym fizycznym serwerze bez bezpośredniego dostępu między ich systemami plików, należy użyć innej nazwy DNS dla tego hosta, aby klienci mogli bezpośrednio zapytać o poprawny adres, bez żadnego przekierowania. Następnie napraw swoje strony internetowe (możesz użyć dzienników swojego serwera internetowego, aby zobaczyć, gdzie zwracane są przekierowania HTTP 30x i które strony mogą wymagać sprawdzenia i aktualizacji). Zmuszanie klientów do korzystania z niezabezpieczonych / niezaznaczonych protokołów nie jest dobrym rozwiązaniem.

Jest to z pewnością problem bardzo złej konfiguracji na serwerze WWW: spróbuj skontaktować się z administratorem, aby to naprawić.


0

możesz też użyć Axela . axel to lekki akcelerator pobierania z wiersza poleceń. obsługuje HTTP, HTTPS, FTPi FTPSprotokoły. to miła i szybsza alternatywa.

zainstaluj axelza pomocą:

apt-get install axel

następnie pobierz plik przez:

axel http://github.com/ziyaddin/xampp/archive/master.zip

0

Użyj opcji -Lśledzenia przekierowań, możesz także użyć --outputopcji podania ścieżki i nazwy pliku zip. Na przykład:

sudo curl -L https://github.com/CISOfy/lynis/archive/master.zip --output /etc/lynis.zip

Uwaga: Użyj sudo, jeśli nie masz uprawnień do zapisu w folderze docelowym.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.