फ़ाइल को कर्ल कमांड के साथ विशिष्ट फ़ोल्डर में सहेजें


182

एक शेल स्क्रिप्ट में, मैं कुछ URL से एक फ़ाइल डाउनलोड करना चाहता हूं और इसे एक विशिष्ट फ़ोल्डर में सहेजना चाहता हूं। विशिष्ट CLI ध्वज क्या है जो मुझे curlकमांड के साथ एक विशिष्ट फ़ोल्डर में फ़ाइलों को डाउनलोड करने के लिए उपयोग करना चाहिए , या मुझे यह परिणाम कैसे मिलेगा?


ऐसा लगता है कि बैश प्रोग्रामिंग प्रोग्रामिंग है ...
rjurney

जवाबों:


279

मुझे नहीं लगता कि आप कर्ल को एक रास्ता दे सकते हैं, लेकिन आप स्थान को सीडी, डाउनलोड और सीडी को वापस कर सकते हैं।

cd target/path && { curl -O URL ; cd -; }

या सबस्क्रिप्शन का उपयोग कर रहे हैं।

(cd target/path && curl -O URL)

यदि पथ मौजूद है तो दोनों ही तरीके डाउनलोड होंगे। -Oदूरस्थ फ़ाइल नाम रखता है। डाउनलोड करने के बाद यह मूल स्थान पर वापस आ जाएगा।

यदि आपको स्पष्ट रूप से फ़ाइल नाम सेट करने की आवश्यकता है, तो आप छोटे -oविकल्प का उपयोग कर सकते हैं :

curl -o target/path/filename URL

2
मेरे पास यह आदेश है: कर्ल-क्लोक basename /packages" github.com/ziyaddin/xampp/archive/master.zip "। लेकिन यह कहता है कि गलत basename /packages
नामकरण

10
आप एक (cd target/path; curl -O URL)
उप

9
दोनों के बीच क्या अंतर है? पहले एक सीडी की डायरेक्टरी में और फाइल को डाउनलोड करता है, फिर सीडी निकालता है। दूसरा वर्तमान निर्देशिका में रहता है और विशिष्ट स्थान पर कर्ल फ़ाइल। दूसरा अधिक सरल लगता है।
हेनरी झू

9
@HenryZhu पहले एक में फ़ाइल नाम सर्वर पर फ़ाइल के नाम से लिया गया है। दूसरे में आप अपने द्वारा डाउनलोड की गई सामग्री का नाम बदलकर प्रदान कर रहे हैं।
turtlemonvh

4
मैं वास्तव में एक निर्देशिका निर्दिष्ट करने के लिए एक विकल्प चाहूंगा, लेकिन सर्वर के फ़ाइलनाम का उपयोग करूंगा। ऐसा लगता cdहै कि वर्तमान में इसका उपयोग करना सबसे अच्छा विकल्प है, हालांकि यह थोड़ा असभ्य लगता है।
स्टॉकबी

4

curlउस के लिए एक विकल्प नहीं है (फ़ाइल नाम निर्दिष्ट किए बिना भी), लेकिन wgetकरता है। निर्देशिका सापेक्ष या निरपेक्ष हो सकती है। इसके अलावा, निर्देशिका स्वचालित रूप से बनाई जाएगी यदि यह मौजूद नहीं है।

wget -P relative/dir "$url"

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