कमांड लाइन से दूरस्थ फ़ाइलें डाउनलोड करने के लिए cURL का उपयोग करना

विषयसूची:

Anonim

किसी भी दूरस्थ सर्वर से फ़ाइलों को डाउनलोड करने के लिए शक्तिशाली कर्ल कमांड लाइन टूल का उपयोग किया जा सकता है। लंबे समय तक कमांड लाइन उपयोगकर्ता जानते हैं कि यह विभिन्न प्रकार की स्थितियों के लिए उपयोगी हो सकता है, लेकिन चीजों को सरल रखने के लिए, कई लोग पाएंगे कि कर्ल के साथ फ़ाइल डाउनलोड करना अक्सर वेब ब्राउज़र या एफ़टीपी क्लाइंट का जीयूआई पक्ष से उपयोग करने का एक तेज़ विकल्प हो सकता है। मैक ओएस एक्स (या लिनक्स)।यह स्थानीय स्थितियों के लिए सहायक है, लेकिन यदि आप ऐसी स्थिति में हैं, जहां आपको SSH के माध्यम से कनेक्ट होने पर दूरस्थ Mac पर कुछ डाउनलोड करने की आवश्यकता है, तो इसका विशेष महत्व है।

इस पूर्वाभ्यास के प्रयोजनों के लिए, हम मुख्य रूप से दो सामान्य रूप से सामना किए गए HTTP और SFTP प्रोटोकॉल से फ़ाइलों को डाउनलोड करने पर ध्यान केंद्रित करेंगे, हालांकि यह ध्यान दिया जाना चाहिए कि cURL कई और प्रोटोकॉल का समर्थन करता है। हालांकि कर्ल का उपयोग करना आसान है, कमांड लाइन का कुछ ज्ञान होने की सिफारिश की जाती है।

कर्ल के साथ सटीक मिलान फ़ाइलें डाउनलोड करें -O

अपरकेस का उपयोग करते हुए -O कर्ल के साथ ध्वज सटीक फ़ाइल नाम को बनाए रखते हुए दूरस्थ सर्वर से फ़ाइल डाउनलोड करता है, इसके लिए मूल सिंटैक्स निम्नलिखित है:

कर्ल -ओ

इसका अर्थ है कि यदि निर्दिष्ट URL फ़ाइल का नाम "sample.zip" है, तो यह फ़ाइल नाम "sample.zip" के साथ डाउनलोड होगी, और यदि फ़ाइल का नाम कुछ विशाल और जटिल है, जैसे "LongExampleFileNameForOSXDaily-v- 1-3-51-संशोधन-515b12-readme.txt" दूरस्थ सर्वर पर, यह स्थानीय मशीन पर उस सटीक नाम से सहेजा जाएगा। लंबे फ़ाइल नामों को अक्सर -O के बजाय -o फ़्लैग से बेहतर तरीके से हैंडल किया जाता है, जिसे हम जल्द ही संबोधित करेंगे।

नियमित पाठक याद कर सकते हैं कि हमने m3u स्ट्रीमिंग फ़ाइल से वास्तविक ऑडियो सामग्री निकालने का तरीका बताते समय कर्ल -O कमांड का उपयोग किया था।

कर्ल के साथ कोई भी डाउनलोड शुरू करना प्रतिशत स्थानांतरित, डाउनलोड करने में लगने वाला समय और शेष समय और स्थानांतरण गति को दर्शाता है।

स्क्रीनशॉट नीचे चिपकाए गए उदाहरण से बेहतर प्रतिनिधित्व प्रदान करता है, लेकिन यह कुछ ऐसा दिखता है:

% कुल % प्राप्त % Xferd औसत गति समय समय समय वर्तमान अपलोड अपलोड कुल खर्च वाम गति 100 10505 100 10505 0 0 79741 0 --:--:-- --:--:-- --:--:-- 142k

ट्रांसफर गति के साथ आप कर्ल के आउटपुट को /dev/null पर रीडायरेक्ट कर सकते हैं और इंटरनेट कनेक्शन की गति का परीक्षण करने के लिए इसका उपयोग कर सकते हैं, लेकिन wget कमांड को पढ़ना और ट्रांसफर बार का पालन करना आसान है, इसलिए wget बेहतर है उस कार्य के लिए अनुकूल।

कर्ल -o के साथ एक अलग नाम के साथ एक दूरस्थ फ़ाइल सहेजना

लोअरकेस -o फ़्लैग का उपयोग करने से आप डाउनलोड की गई फ़ाइल के लिए दूरस्थ सर्वर पर नाम के बजाय एक भिन्न फ़ाइल नाम निर्दिष्ट कर सकेंगे। यह लंबे समय तक फ़ाइल नामों को कम करने में सहायक हो सकता है या केवल कुछ लेबल कर सकता है ताकि स्वयं को ढूंढना आसान हो। सामान्य सिंटैक्स होगा:

कर्ल -ओ

उदाहरण के लिए, यदि आप एक iOS IPSW फ़ाइल को सहेजना चाहते हैं जिसे आपने Apple सर्वर पर लंबे पूर्ण नाम के बिना सूचीबद्ध पाया, तो आप निम्नलिखित का उपयोग कर सकते हैं:

curl -o iPhone5C-704.ipsw http://appldnld.apple.com/iOS7/031-1828.20131114.P3wE4/iPhone5, 3_7.0.4_11B554a_Restore.ipsw

यह "iPhone5, 3_7.0.4_11B554a_Restore.ipsw" फ़ाइल डाउनलोड करेगा, लेकिन इसका नाम अधिक अर्थपूर्ण "iPhone5C-704.ipsw" होगा।

यदि आप फ़ाइल को वर्तमान कार्यशील निर्देशिका में सहेजना नहीं चाहते हैं, तो फ़ाइल नाम के भाग के रूप में एक पथ निर्दिष्ट करें:

curl -o ~/Desktop/localexample.dmg http://url-to-file/example.dmg

कर्ल के साथ एक साथ कई फ़ाइलें डाउनलोड करना

cURL एक ही समय में कई फ़ाइलों को आसानी से डाउनलोड कर सकता है, आपको बस इतना करना है कि एक से अधिक URL निर्दिष्ट करें:

कर्ल -ओ

विभिन्न नामों वाली फ़ाइलों के लिए, या विभिन्न सर्वरों पर होस्ट की गई, या विभिन्न निर्देशिका पथों के लिए, पूर्ण URL का उपयोग करें, उदाहरण के लिए:

curl -O http://ftp.gnu.org/gnu/Licenses/fdl-1.1.txt http://ftp.gnu.org/gnu/ लाइसेंस/lgpl-2.1.txt http://ftp.gnu.org/gnu/GNUinfo/Audio/index.txt

दूसरी ओर, यदि डाउनलोड की जाने वाली फ़ाइल के नाम वृद्धिशील नामकरण का उपयोग कर रहे हैं, तो आप डाउनलोड सीमा निर्दिष्ट करने के लिए कोष्ठक का उपयोग कर सकते हैं, जैसे:

curl -O http://ftp.gnu.org/gnu/Licenses/fd1-1.txt

यह फ़ाइलों को fdl-1.1.txt, fd1-1.2.txt, और fd1-1.3.txt सभी को एक ही समय में प्रत्येक अद्वितीय URL निर्दिष्ट किए बिना पकड़ लेगा। बेशक यह केवल तभी काम करता है जब फ़ाइलें एक साथ एक ही निर्देशिका में और एक ही डोमेन पर हों।

कर्ल के साथ प्रमाणीकरण

आप -यू फ्लैग का उपयोग करके कर्ल के साथ प्रमाणीकरण पास कर सकते हैं:

curl -u user:pass -O ftp://remote_url/file-to-download.zip

ध्यान रखें कि बैश इतिहास निर्दिष्ट उपयोगकर्ता नाम और पासवर्ड के साथ -u का उपयोग करते समय पासवर्ड को सादे पाठ में संग्रहीत करेगा, इस प्रकार यह अधिकांश स्थितियों के लिए अनुशंसित नहीं है। आप 'कर्ल' के सामने एक जगह रखकर इसे प्राप्त कर सकते हैं।यदि आप कमांड को प्रीफिक्स करने के लिए स्पेसबार का उपयोग नहीं करते हैं, तो आप शायद बाद में सुरक्षित रहने के लिए कमांड इतिहास को खाली करना चाहेंगे।

समर्थित कर्ल प्रोटोकॉल और HTTP और FTP से परे उपयोग

जैसा कि पहले उल्लेख किया गया है, कर्ल का उपयोग HTTP और FTP से कहीं आगे जाता है, क्योंकि कर्ल मैनुअल पृष्ठ प्रविष्टि विवरण में अतिरिक्त प्रोटोकॉल का उल्लेख करती है:

अतिरिक्त रूप से, आप पाएंगे कि कर्ल का उपयोग PUT और POST अनुरोधों, कुकीज़, प्रॉक्सी, सुरंगों, डाउनलोड को फिर से शुरू करने और यहां तक ​​कि HTTP हेडर जानकारी प्राप्त करने या उपयोगकर्ता एजेंट को बदलने (प्रभावी रूप से स्पूफिंग) के लिए भी किया जा सकता है। समर्पित वेब ब्राउज़र का उपयोग करने की आवश्यकता के बिना।

अधिकांश कमांड लाइन उपयोगिताओं की तरह, आप 'मैन कर्ल' कमांड के साथ उपयुक्त मैन पेज को बुलाकर कर्ल के बारे में बहुत कुछ सीख सकते हैं।

कमांड लाइन से दूरस्थ फ़ाइलें डाउनलोड करने के लिए cURL का उपयोग करना