Jak mogę pobrać plik ZIP za pomocą polecenia curl? Próbowałem curl -sO
, ale wystąpił błąd. Chcę pobrać plik zip z adresu:
http://github.com/ziyaddin/xampp/archive/master.zip
ale nie mogę. Co mam wpisać?
Jak mogę pobrać plik ZIP za pomocą polecenia curl? Próbowałem curl -sO
, ale wystąpił błąd. Chcę pobrać plik zip z adresu:
http://github.com/ziyaddin/xampp/archive/master.zip
ale nie mogę. Co mam wpisać?
Odpowiedzi:
Spróbuj wget zamiast zwijania się: wget http://github.com/ziyaddin/xampp/archive/master.zip
wget
zamiast curl
?
unzip
podczas pobierania pliku pobranego curl
i działało dobrze zwget
Możesz użyć:
curl https://github.com/ziyaddin/xampp/archive/master.zip -O -J -L
Zapisuje jako: xampp-cli-master.zip
-L
w przypadku znalezienia przekierowania.-O
do zdalnych nazw plików ( master.zip
)-J
(użyj z -O
), aby zezwolić na zdalną nazwę pliku nagłówka ( xampp-cli-master.zip
)
Lub użyj, -o
aby 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 -L
aby 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.
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.
wget
z curl
. Dla każdego, kto zastanawia się nad różnicami między nimi, zobacz tutaj .
curl
który również przyczynia się do wget
mniejszej 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
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
„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ć.
możesz też użyć Axela . axel to lekki akcelerator pobierania z wiersza poleceń. obsługuje HTTP, HTTPS, FTP
i FTPS
protokoły. to miła i szybsza alternatywa.
zainstaluj axel
za pomocą:
apt-get install axel
następnie pobierz plik przez:
axel http://github.com/ziyaddin/xampp/archive/master.zip
Użyj opcji -L
śledzenia przekierowań, możesz także użyć --output
opcji 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.