कर्ल कमांड के साथ जिप फाइल डाउनलोड करें


33

मैं कर्ल कमांड के साथ ज़िप फ़ाइल कैसे डाउनलोड कर सकता हूं? मैंने कोशिश की curl -sO, लेकिन त्रुटि हुई। मैं पते से जिप फाइल डाउनलोड करना चाहता हूं: http://github.com/ziyaddin/xampp/archive/master.zip

लेकिन नहीं कर सकते। मुझे क्या लिखना चाहिए?


त्रुटि संदेश क्या है?
डेविड फ़ॉस्टर

जवाबों:



20

कर्ल के बजाय विग की कोशिश करें: wget http://github.com/ziyaddin/xampp/archive/master.zip


1
क्या डाउनवॉटर समझा सकता है? या अन्य पोस्टर है?
don.joey

4
क्या आप बता सकते हैं कि wgetइसके बजाय क्यों curl?
जॉर्ज बुकानन

1
कम कमांड लाइन (यदि आप परवाह करते हैं) - जिसका अर्थ है कम विकल्प, लेकिन सबसे बड़ा अंतर यह है कि wget समर्थन पुनरावर्ती डाउनलोड
Ran Davidovitz

पता नहीं क्यों, लेकिन मेरे पास unzipडाउनलोड की गई फ़ाइल को जारी करने में एक त्रुटि थी curl, और इसके साथ ठीक काम कियाwget
Dinei

15

आप उपयोग कर सकते हैं:

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

के रूप में बचाता है: xampp-cli-master.zip

  • -Lमामले में उपयोग एक पुनर्निर्देशित पाया जाता है।
  • -Oदूरस्थ फ़ाइल नाम के लिए उपयोग ( master.zip)
  • रिमोट हेडर फ़ाइलनाम ( ) की अनुमति देने के लिए उपयोग -J(उपयोग के साथ )-Oxampp-cli-master.zip


या -oअपना खुद का नाम बनाने के लिए उपयोग करें:

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

के रूप में बचाता है: MyFilename.zip

नोट: (GitHub SSL का उपयोग करता है - उपयोग https://)


आप WGET के समान काम करने की अनुमति देने के लिए एक curlrc कॉन्फ़िगर फ़ाइल या अन्य उपनाम CURL कमांड का उपयोग curl -O -Lकर सकते हैं।

परामर्श: https://curl.haxx.se/docs/manpage.html#OPTIONS (देखें: -O , -J , -L , -o )

-J विकल्प के साथ CURL का उपयोग करने की चेतावनी पर ध्यान दें:

प्रदान किए गए फ़ाइल नाम में%-परिणाम (अभी तक) को डीकोड करने का कोई प्रयास नहीं है, इसलिए यह विकल्प आपको अप्रत्याशित फ़ाइल नामों के साथ प्रदान कर सकता है।

चेतावनी : विशेष रूप से विंडोज पर इस विकल्प का विवेकपूर्ण उपयोग करें। एक दुष्ट सर्वर आपको एक DLL या अन्य फ़ाइल का नाम भेज सकता है जो संभवतः विंडोज या किसी तीसरे पक्ष के सॉफ़्टवेयर द्वारा स्वचालित रूप से लोड की जा सकती है।


5

यदि आप wget [option]... [URL]...इसके बजाय फ़ाइल का उपयोग डाउनलोड करना चाहते हैं ।

विकल्पों के संबंध में अधिक जानकारी के लिए, इसे अपने टर्मिनल में लिखें: man wget

आप उद्देश्य के लिए:

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

ध्यान दें कि .zip फ़ाइल आपके द्वारा वर्तमान निर्देशिका में सहेजी जाएगी।


1
इससे wgetअधिक उपयोग करने के फायदों के बारे में बताना उपयोगी होगा curl। किसी के लिए भी दोनों के बीच के मतभेदों को यहां देखें
जॉर्ज बुकरन

@ जॉर्जब्यूकरन ने लेखक द्वारा लिखित तुलना को पढ़ा, curlजो wgetएक छोटी भूमिका में भी योगदान देता है । एक चमक चूक (मेरे एक समय की छोटी परियोजना के आधार पर) यह है कि विग कर्ल की तुलना में 10 गुना तेज है (<2 सेकंड बनाम 12 सेकंड) सूर्योदय और सूर्यास्त के समय को पुनः प्राप्त करनाhttps://www.timeanddate.com
WinEunuuchs2Unix

इसलिए, कभी-कभी जब आप wget का उपयोग करते हैं और फ़ाइल को सीधे सेवा नहीं दी जाती है, लेकिन इसके बजाय url एक सेवा को बताता है कि फ़ाइल का पता लगाने और सेवा करने के लिए, आप जो डाउनलोड करना चाहते हैं वह HTML है। तो इसके बजाय कर्ल कुछ फ़ाइलों के लिए बेहतर है
Zloy Smiertniy

3

GitHub (या कोई अन्य साइट जो रीडायरेक्ट बनाती है) का उपयोग करने के लिए फाइल डाउनलोड करने के लिए curl, आपको पास होना चाहिए -L(रीडायरेक्ट का पालन करें), इसलिए उपयोग करें:

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


1

"कर्ल-क्लोक" असुरक्षित प्रोटोकॉल (-k) का उपयोग करके बनाता है, एसएसएल प्रमाणपत्र जांच को अक्षम करता है (जो कि गलत रास्ते के कारण प्रमाणपत्र से मेल नहीं खाता), और रिमोट सर्वर से प्रस्तावित फ़ाइल नाम (-ओ) का उपयोग करके आउटपुट फ़ाइल बनाते हैं। (असुर भी)। मेरी राय में, सर्वर को बेहतर ढंग से कॉन्फ़िगर किया जाना चाहिए जहां स्थानीय पुनर्निर्देशित उपनाम बनाए जा सकते हैं, जहां URL के इस गैर अनुरूप भाग को पारित करने से बचने के लिए आवश्यक है। लेकिन पुनर्निर्देशन केवल एक HTTP पुनर्निर्देशन (HTTP त्रुटि 30x) का उपयोग करके किया जाता है, जो कर्ल की समस्याओं का कारण बनता है जो (डिफ़ॉल्ट रूप से) इस (असुरक्षित) पुनर्निर्देशन का पालन नहीं करता है, और विकल्प (-k) इस सुरक्षा जांच को अक्षम करता है। इसलिए HTTP पुनर्निर्देशन (स्थायी रूप से स्थानांतरित) का उपयोग करने के बजाय, कृपया सर्वर के फाइल सिस्टम पर कुछ आंतरिक लिंक जोड़ें। यदि यह आवश्यक है क्योंकि URL वास्तव में किसी अन्य भौतिक सर्वर पर उनके फाइल सिस्टम के बीच कोई सीधी पहुंच के साथ होस्ट किया गया है, तो आपको इस होस्ट के लिए किसी अन्य DNS नाम का उपयोग करना चाहिए, ताकि क्लाइंट बिना किसी रीडायरेक्ट के सीधे सही क्वेरी करेंगे। फिर अपने वेब पेजों को ठीक करें (आप अपने वेबसर्वर लॉग्स का उपयोग करके यह देख सकते हैं कि HTTP 30x रीडायरेक्ट कहाँ वापस आए हैं और किन वेबपृष्ठों को जाँचने और अद्यतन करने की आवश्यकता हो सकती है)। ग्राहकों को असुरक्षित / अनियंत्रित प्रोटोकॉल का उपयोग करने के लिए मजबूर करना एक अच्छा विकल्प नहीं है।

तो यह निश्चित रूप से वेब सर्वर पर बहुत खराब कॉन्फ़िगरेशन की समस्या है: इसे ठीक करने के लिए उनके व्यवस्थापक से संपर्क करने का प्रयास करें।


0

ठीक है, आप एक्सल का भी उपयोग कर सकते हैं । axel एक प्रकाश कमांड लाइन डाउनलोड त्वरक है। यह समर्थन करता है HTTP, HTTPS, FTPऔरFTPS प्रोटोकॉल है। इसका अच्छा और तेज विकल्प है।

axelका उपयोग कर स्थापित करें:

apt-get install axel

इसके बाद अपनी फ़ाइल डाउनलोड करें:

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

0

-Lपुनर्निर्देश का पालन करने के लिए विकल्प का उपयोग करें , आप --outputज़िप फ़ाइल को पथ और नाम देने के लिए भी विकल्प का उपयोग कर सकते हैं । उदाहरण के लिए:

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

नोट: यदि आपने लक्ष्य फ़ोल्डर में लिखने की अनुमति नहीं है, तो sudo का उपयोग करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.