कैसे wget का उपयोग करके एक पूरी निर्देशिका और उपनिर्देशिका डाउनलोड करें?


143

मैं एक परियोजना के लिए फ़ाइलों को डाउनलोड करने का प्रयास कर रहा हूं wget, क्योंकि उस परियोजना के लिए SVN सर्वर अब नहीं चल रहा है और मैं केवल एक ब्राउज़र के माध्यम से फ़ाइलों तक पहुंचने में सक्षम हूं। सभी फ़ाइलों के लिए आधार URL समान है

http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/ *

मैं wgetइस रिपॉजिटरी में सभी फ़ाइलों को डाउनलोड करने के लिए (या किसी अन्य समान उपकरण) का उपयोग कैसे कर सकता हूं , जहां "tzivi" फ़ोल्डर रूट फ़ोल्डर है और इसके तहत कई फाइलें और उप-फ़ोल्डर (2 या 3 स्तर तक) हैं?


3
यदि सर्वर के पास आपकी ज़रूरत की फ़ाइलों की सूची के साथ कोई वेब-पेज नहीं है, तो आप ऐसा नहीं कर सकते।
Eddy_Em

1
क्या आप फ़ाइलों का नाम जानते हैं?
कारोली होर्वाथ

नहीं, मुझे सभी फ़ाइलों का नाम नहीं पता है। मैंने पुनरावर्ती विकल्प के साथ छूटने की कोशिश की लेकिन यह या तो काम नहीं करता था। ऐसा इसलिए है क्योंकि सर्वर में कोई भी इंडेक्स नहीं है। फ़ाइल जो सभी आंतरिक लिंक को सूचीबद्ध करती है।
code4fun

क्या आपने wget के मिररिंग विकल्प की कोशिश की?
टॉमाज़ न्गुयेन

जवाबों:


193

आप शेल में इसका उपयोग कर सकते हैं:

wget -r --no-parent http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/

पैरामीटर हैं:

-r     //recursive Download

तथा

--no-parent // Don´t download something from the parent directory

यदि आप संपूर्ण सामग्री डाउनलोड नहीं करना चाहते हैं, तो आप उपयोग कर सकते हैं:

-l1 just download the directory (tzivi in your case)

-l2 download the directory and all level 1 subfolders ('tzivi/something' but not 'tivizi/somthing/foo')  

और इसी तरह। यदि आप कोई -lविकल्प नहीं डालते हैं, wgetतो -l 5स्वचालित रूप से उपयोग करेगा।

यदि आप -l 0संपूर्ण इंटरनेट डाउनलोड करते हैं, क्योंकि wgetयह आपके द्वारा खोजे गए प्रत्येक लिंक का अनुसरण करेगा।


19
महान, इसलिए अगले पाठक के लिए सरल बनाने के लिए: wget -r -l1 --no-parent http://www.stanford.edu/~boyd/cvxbook/cvxbook_additional_exercises/मेरे लिए जवाब था। आपका उत्तर धन्यवाद।
आइसोमोर्फिज्म

2
मैंने उपरोक्त कमांड को सभी फाइलों से प्राप्त करने की कोशिश की, http://websitename.com/wp-content/uploads/2009/05लेकिन मुझे index.htmlजो भी मिला वह एक फाइल थी जिसमें कुछ भी नहीं था। मैं समझ नहीं पाया कि क्या याद किया।
विवेक टोडी '

@up: ध्यान दें कि लिंक लिंक का अनुसरण करता है, इसलिए आपको निर्देशिका लिस्टिंग की आवश्यकता है;)

11
मुझे पता है कि यह काफी पुराना है। लेकिन मुझे जो उपयोगी लगा वह था -e robots=offस्विच। ;)
मथायस डब्ल्यू।

2
आप "मैं कुछ महत्वपूर्ण भूल गया" को क्यों नहीं हटाते हैं और सिर्फ जवाब को ठीक करते हैं ???
user1271772

16

आप इसे एक शेल में उपयोग कर सकते हैं:

wget -r -nH --cut-dirs=7 --reject="index.html*" \
      http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/

पैरामीटर हैं:

-r recursively download

-nH (--no-host-directories) cuts out hostname 

--cut-dirs=X (cuts out X directories)


3
wget -r --no-parent URL --user=username --password=password

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

आप https://www.howtogeek.com/281663/how-to-use-wget-the-ultimate-command-line-downloading-tool/ लिंक में और विकल्प भी देख सकते हैं


1

आप इस कमांड का उपयोग भी कर सकते हैं:

wget --mirror -pc --convert-links -P ./your-local-dir/ http://www.your-website.com

ताकि आपको उस वेबसाइट का सटीक दर्पण मिल जाए जिसे आप डाउनलोड करना चाहते हैं



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