Wget के साथ स्थान कैसे निर्दिष्ट करें?


695

मुझे / tmp / cron_test / को डाउनलोड करने के लिए फ़ाइलों की आवश्यकता है। मेरा wget कोड है

wget --random-wait -r -p -nd -e robots=off -A".pdf" -U mozilla http://math.stanford.edu/undergrad/

तो क्या निर्देशिका को निर्दिष्ट करने के लिए कुछ पैरामीटर है?


जवाबों:


955

मैनुअल पेज से:

-P prefix
--directory-prefix=prefix
           Set directory prefix to prefix.  The directory prefix is the
           directory where all other files and sub-directories will be
           saved to, i.e. the top of the retrieval tree.  The default
           is . (the current directory).

इसलिए आपको अपने कमांड में -P /tmp/cron_test/(शॉर्ट फॉर्म) या --directory-prefix=/tmp/cron_test/(लॉन्ग फॉर्म) जोड़ने की जरूरत है । यह भी ध्यान दें कि यदि निर्देशिका मौजूद नहीं है तो यह निर्मित हो जाएगी।


5
-पी / tmp / cron_test / does not काम करते हैं लेकिन हटाने / जैसे-tmp / cron_test / कार्य करता है और यहां तक ​​कि nonexisting निर्देशिका भी बनाता है।
कंगारू

7
कंगारू शायद यह काम नहीं करता है क्योंकि आपके पास आपके सिस्टम पर / tmp / cron_test / नहीं है: P
समीर अलीभाई

41
मैनुअल का विवरण इस विकल्प को खोजना मुश्किल बनाता है। मैं उस स्थान के बारे में नहीं सोचता जहाँ मैं 'निर्देशिका उपसर्ग' के रूप में कुछ बचाना चाहता हूँ। साझा करने के लिए धन्यवाद!
इयान सैमुअल मैकलीन एल्डर

7
इसके अलावा, आप सर्वर फ़ोल्डर के माध्यम से --no-host-directoriesया serverfault.com/questions/354792/… के-nH अनुसार निकाल सकते हैं
एलियन लाइफ फॉर्म

अगर किसी भी विचार के साथ-इनपुट फ़ाइल का उपयोग करते हुए -प की उपेक्षा की जाती है?
Jan Viehweger

411

-O उस फ़ाइल का पथ निर्दिष्ट करने का विकल्प है जिसे आप डाउनलोड करना चाहते हैं।

wget <file.ext> -O /path/to/folder/file.ext

-प्राथमिक उपसर्ग है जहां वह निर्देशिका में फ़ाइल डाउनलोड करेगा

wget <file.ext> -P /path/to/folder

8
मैं स्लैश इसे बनाने के लिए जोड़ना होगा /path/to/folder/वहाँ
लुइस मैडॉक्स

36
अप ने यह भी निर्दिष्ट करने के लिए मतदान किया कि मुझे किस चीज़ की -Oज़रूरत नहीं थी, लेकिन इससे मुझे और अधिक आत्मविश्वास महसूस -Pहुआ जो मुझे चाहिए था।
वर्क्स

मेरी मशीन के मैन पेज प्रति @louisMaddox, डिफ़ॉल्ट उपसर्ग "" है। (यानी, वर्तमान निर्देशिका) "निर्देशिका उपसर्ग" के लिए एक अनुगामी स्लैश जोड़ने से दोहरी स्लैश त्रुटि होगी (अर्थात, मेरी / पसंदीदा / dir / उपसर्ग //) इसके अलावा, शब्दार्थ को देखते हुए, "निर्देशिका उपसर्ग" को अनुगामी की आवश्यकता नहीं होगी। स्लेश।
टिमोथी एलजे स्टीवर्ट

2
@ TimothyL.J.Stewart कोई दोहरी स्लैश त्रुटि नहीं है।
har-wradim

NB: -Oओवरराइड करता है -P, इसलिए आप सिर्फ आउटपुट डायरेक्टरी (थिंक dirname एंडbasename-O
ऑउट

7

सुनिश्चित करें कि आपके पास जो कुछ भी आप डाउनलोड कर रहे हैं उसके लिए आपके पास URL सही है। सबसे पहले, ?इस तरह के और इस तरह के वर्णों वाले URL को पार्स और हल नहीं किया जा सकता है। यह cmd लाइन को भ्रमित करेगा और आपके द्वारा डाउनलोड किए जा रहे फ़ाइल नाम के रूप में स्रोत URL नाम में हल किए गए किसी भी वर्ण को स्वीकार नहीं करेगा।

उदाहरण के लिए:

wget "sourceforge.net/projects/ebosse/files/latest/download?source=typ_redirect"

नाम की एक फ़ाइल में डाउनलोड हो जाएगा और ?source=typ_redirect

जैसा कि आप देख सकते हैं, URL के बारे में एक या दो चीजें जानने से समझने में मदद मिलती है wget

मैं एक hirens डिस्क से बूट कर रहा हूं और केवल एक संसाधन के रूप में लिनक्स 2.6.1 था (आयात ओएस अनुपलब्ध है)। सही सिंटैक्स जिसने भौतिक हार्ड ड्राइव पर आईएसओ डाउनलोड करने में मेरी समस्या को हल किया था:

wget "(source url)" -O (directory where HD was mounted)/isofile.iso" 

कोई भी wgetनाम index.html(डिफ़ॉल्ट फ़ाइल) नामक फ़ाइल में किस बिंदु पर डाउनलोड करके सही URL का पता लगा सकता है , और आपके पास निम्न कमांड द्वारा दर्शाई गई फ़ाइल का सही आकार / अन्य विशेषताएँ हैं:

wget "(source url)"

एक बार जब वह URL और स्रोत फ़ाइल सही है और यह डाउनलोड हो रहा है index.html, तो आप डाउनलोड ( ctrl+ z) को रोक सकते हैं और आउटपुट फ़ाइल को बदलकर उपयोग कर सकते हैं:

-O "<specified download directory>/filename.extension"

स्रोत के बाद url।

मेरे मामले में यह एक आईएसओ डाउनलोड करने और इसके तहत एक बाइनरी फ़ाइल के रूप में संग्रहीत करने का परिणाम है isofile.iso, जो उम्मीद करता है कि आरोहित करता है।


2

- * * सही विकल्प है, कृपया अधिक संबंधित जानकारी के लिए पढ़ें:

wget -nd -np -P / dest / dir -recursive http: // url / dir1 / dir2

सुविधा के लिए मैन पेज से प्रासंगिक स्निपेट:

   -P prefix
   --directory-prefix=prefix
       Set directory prefix to prefix.  The directory prefix is the directory where all other files and subdirectories will be saved to, i.e. the top of the retrieval tree.  The default is . (the current directory).

   -nd
   --no-directories
       Do not create a hierarchy of directories when retrieving recursively.  With this option turned on, all files will get saved to the current directory, without clobbering (if a name shows up more than once, the
       filenames will get extensions .n).


   -np
   --no-parent
       Do not ever ascend to the parent directory when retrieving recursively.  This is a useful option, since it guarantees that only the files below a certain hierarchy will be downloaded.

1

man wget: -O file --output-document = file

wget "url" -O /tmp/cron_test/<file>

1
यह एक जवाब नहीं है, becouse -o विकल्प निर्दिष्ट फ़ाइल में dounloaded फ़ाइल डालें। लेकिन सवाल यह है कि "एक फ़ोल्डर में फ़ाइल कैसे रखी जाए"। और यह डुप्लिकेट मौजूद है जवाब
एंटोन गोर्बुनोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.