एफ़टीपी के माध्यम से लिनक्स पर एक फ़ोल्डर को कैसे पुन: डाउनलोड करें [बंद]


325

मैं कमांड लाइन ftp क्लाइंट का उपयोग करके एक फ़ोल्डर को ftp करने की कोशिश कर रहा हूं, लेकिन अभी तक मैं केवल व्यक्तिगत फ़ाइलों को प्राप्त करने के लिए 'get' का उपयोग करने में सक्षम हूं।


5
सही उत्तर lkuty द्वारा 14:13 बजे 6 अप्रैल 11 से है। उपयोग न करें mget, यह पुनरावर्ती नहीं है। 22:08 से 9:01 पर जवाब थिबाट बैरेर को समझना आसान है, लेकिन -l 0टिप्पणी में वर्णित विकल्प को जोड़ना होगा
chriscatfr

जवाबों:


634

आप wget पर भरोसा कर सकते हैं जो आमतौर पर ftp को ठीक से (कम से कम मेरे अपने अनुभव में) संभालता है। उदाहरण के लिए:

wget -r ftp://user:pass@server.com/

आप यह भी उपयोग कर सकते हैं -mजो मिररिंग के लिए उपयुक्त है। यह वर्तमान में इसके बराबर है -r -N -l inf

यदि आपके पास क्रेडेंशियल विवरण में कुछ विशेष वर्ण हैं, तो आप इसे काम करने के लिए तर्क --userऔर --passwordतर्क निर्दिष्ट कर सकते हैं । विशिष्ट वर्णों के साथ कस्टम लॉगिन के साथ उदाहरण:

wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/

EDIT जैसा कि @asmaier द्वारा बताया गया है, यह देखें कि यदि -rपुनरावृत्ति के लिए भी , तो इसका डिफ़ॉल्ट अधिकतम स्तर 5 है:

       -r
       --recursive
           Turn on recursive retrieving.

       -l depth
       --level=depth
           Specify recursion maximum depth level depth.  The default maximum depth is 5.

यदि आप उप-विभाजनों को याद नहीं करना चाहते हैं, तो मिररिंग विकल्प का बेहतर उपयोग करें -m:

       -m
       --mirror
           Turn on options suitable for mirroring.  This option turns on recursion and time-stamping, sets infinite
           recursion depth and keeps FTP directory listings.  It is currently equivalent to -r -N -l inf
           --no-remove-listing.

121
बेहतर उपयोग wget -m( --mirror)। wget -rडिफ़ॉल्ट रूप से 5 की पुनरावृत्ति गहराई तक सीमित है।
अस्माइर

13
मुझे इस्तेमाल करना था --userऔर --passwordरेड हैट पर भी। मेरी बुद्धि है: GNU Wget 1.11.4 Red Hat modifiedमुझे आश्चर्य है कि अगर यह एक संस्करण की बात है या एक विकृत चीज है ...
देवी

61
आप के साथ अनंत पुनरावृत्ति स्तर सेट कर सकते हैं -l 0, इसलिए उपयोग करने की कोई आवश्यकता नहीं है --mirrorजिसके कुछ अवांछित दुष्प्रभाव हो सकते हैं जैसे कि .listing फाइलें
हनट

28
मैं उपयोग करता हूं wget --ask-password -rl 99 ftp://user@server.com। इस तरह से पासवर्ड के साथ दिखाई नहीं देता है psऔर इतिहास में नहीं रहता है। बेशक, ftp की प्रकृति से इसे सर्वर पर अनएन्क्रिप्टेड भेजा जाता है।
वाल्टर ट्रॉस

7
बैश न्यूब्स के लिए अनुस्मारक: यदि आपके उपयोगकर्ता नाम या पासवर्ड में नियंत्रण वर्ण (जैसे $) हैं, तो आपको एकल उद्धरण का उपयोग करना होगा , जैसे--user='user' --password='pa$$word'
tobek

164

बस थिबुत बर्रे द्वारा दिए गए जवाब को पूरक करने के लिए।

मैंनें इस्तेमाल किया

wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory

सर्वर नाम के बाद डबल स्लैश पर ध्यान दें। यदि मैं अतिरिक्त स्लैश नहीं डालता हूं तो मार्ग उपयोगकर्ता की होम डायरेक्टरी के सापेक्ष है।

  • -nH सर्वर नाम के नाम पर निर्देशिका के निर्माण से बचता है
  • -nc एक नई फ़ाइल बनाने से बचता है अगर यह पहले से ही गंतव्य पर मौजूद है (यह बस छोड़ दिया गया है)
  • --cut-dirs = 5 मुझे / निरपेक्ष / पथ / / निर्देशिका की सामग्री लेने और उसे उस निर्देशिका में रखने की अनुमति देता है जहां मैं wget लॉन्च करता हूं। संख्या 5 का उपयोग पथ के 5 घटकों को फ़िल्टर करने के लिए किया जाता है। डबल स्लैश का अर्थ है एक अतिरिक्त घटक।

3
प्रतिभाशाली। पहले से मौजूद फ़ाइलों को छोड़ने की क्षमता सर्वर माइग्रेशन पर नवीनतम परिवर्धन को पकड़ने के लिए बहुत अच्छी है। rsync अधिक कुशल और अधिक लचीला है, लेकिन कभी-कभी यह विकल्प उपलब्ध नहीं होता है, और केवल FTP का उपयोग किया जा सकता है।
जेसन

यहाँ विशेष रूप से अच्छा -nc और --cut-dirs हैं। साझा करने के लिए धन्यवाद!
लांस क्लीवलैंड

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

आज भी, मैं अभी भी इस wget कमांड का उपयोग तब करता हूं जब rsync का उपयोग करने में असमर्थ होता है। -Nc और --cut-dirs इतना उपयोगी है!
हाफ क्रेजेड

4
बहुत बढ़िया! और अगर आप अपना पासवर्ड कमांड लाइन पर नहीं रखना चाहते हैं, तो आप उपयोग कर सकते हैं --ftp-user=USERऔर --ask-password
23

25
ncftp -u <user> -p <pass> <server>
ncftp> mget directory

मैं एक एफ़टीपी सर्वर पैरामीटर का उपयोग कर, लेकिन संरचना का उपयोग के लिए लॉग इन नहीं कर सकता है open ftp://USERNAME:PASSWORD@HOSTncftp शुरू करने के बाद ...
feeela

+1 - मुझे पता है कि यह पोस्ट पुरानी है, लेकिन मैं अभी इसके पार आया था और ncftp का उपयोग करना आसान था। मैंने ncftpget
Zack Macomber

निश्चित रूप से अधिक विश्वसनीय है wget, और तेजी से TAR मोड में भी। धन्यवाद!
लेन्किनहॉस

3
यह Ubuntu 14.04 पर बताए अनुसार काम नहीं करता है। मेरे लिए काम करने वाले सिंटैक्स में एमजीटी के बजाय "गेट-आर डायरेक्टरी" थी।
इवान

मेरे लिए Ubuntu 14.04 पर काम किया। मुझे नहीं पता था कि यह सब वहाँ था।
ashley

22

यदि lftpआपकी मशीन पर स्थापित है, तो उपयोग करें mirror dir। और आप कर रहे हैं। यदि आप किसी निर्देशिका को पुन: डाउनलोड करना चाहते हैं, तो नीचे Ciro की टिप्पणी देखें।


7
btw, mirror -R dirपुनरावर्ती निर्देशिका अपलोड / अद्यतन करता है
Ciro Santilli 冠状 病 urs urs

1
mirror ./वर्तमान पथ में सभी फ़ाइल और फ़ोल्डर को पुन: डाउनलोड करने के लिए भी उपयोग कर सकते हैं ।
नबी काज

आप mirrorकरंट डायरेक्टरी के लिए भी टाइप कर सकते हैं और यह सबफोल्डर्स है।
माइकल

17

यदि आप scpइसके बजाय उपयोग कर सकते हैं ftp, तो -rविकल्प आपके लिए ऐसा करेगा। मैं यह देखने के लिए जांच करूंगा कि क्या आप एफ़टीपी की तुलना में अधिक आधुनिक फ़ाइल स्थानांतरण तंत्र का उपयोग कर सकते हैं या नहीं।


2
मैंने इसे वोट दिया क्योंकि यह वास्तव में मेरा पहला विचार था, हालांकि यह कड़ाई से इस सवाल का जवाब नहीं देता है।
मेटा

आप @ greg-hewgill में से किसे प्रपोज करेंगे? मुझे इसी तरह की समस्या है
मीकल गोंडा

1
scpअभी भी ssh का उपयोग करने का प्रयास करेंगे, जो आपके केवल FTP क्रेडेंशियल्स होने पर काम नहीं करेगा। 2008 की एक टिप्पणी का जवाब देते हुए अजीब लगता है कि जिस तकनीक से मैं
रुका हुआ


7

'Ncftp' है जो लिनक्स में इंस्टॉलेशन के लिए उपलब्ध है। यह एफ़टीपी प्रोटोकॉल पर काम करता है और इसका उपयोग फ़ाइलों और फ़ोल्डरों को पुनरावर्ती रूप से डाउनलोड करने के लिए किया जा सकता है। लिनक्स पर काम करता है। का उपयोग किया गया है और पुनरावर्ती फ़ोल्डर / फ़ाइल स्थानांतरण के लिए ठीक काम कर रहा है।

इस लिंक ... चेक http://www.ncftp.com/


2
ncftp खिड़कियों पर भी काम करते हैं
Ilya

मैं ncftp प्यार करता हूँ! धन्यवाद।
जोकुल

3

यदि आप कर सकते हैं, तो मैं आपको दृढ़ता से सुझाव देता हूं tarऔर bzip(या gzip, जो भी आपकी नाव को चलाता है) दूरस्थ मशीन पर निर्देशिका - किसी भी महत्वपूर्ण आकार की निर्देशिका के लिए, बैंडविड्थ बचत शायद ज़िप / अनज़िप करने के लिए समय के लायक होगी।


शायद 2008 में, लेकिन 2013 की बैंडविड्थ में कोई फर्क नहीं पड़ता है और आपके पास एफ़टीपी हो सकता है, लेकिन कंसोल तक पहुंच नहीं है :-)
डैनियल डब्ल्यू।

3

यदि आप कमांड लाइन एफ़टीपी से चिपके रहना चाहते हैं, तो आपको NcFTP आज़माना चाहिए। तब आप एक फ़ोल्डर प्राप्त करने के लिए get -R का उपयोग कर सकते हैं। तुम भी पूरा करोगे।



1

आपको उपयोग नहीं करना चाहिए ftp। जैसे telnetयह सुरक्षित प्रोटोकॉल का उपयोग नहीं कर रहा है, और पासवर्ड स्पष्ट पाठ में प्रेषित हैं। यह आपके उपयोगकर्ता नाम और पासवर्ड को पकड़ने के लिए तीसरे पक्ष के लिए बहुत आसान बनाता है।

दूरस्थ निर्देशिकाओं को दूरस्थ रूप से कॉपी करने के लिए, ये विकल्प बेहतर हैं:

  • rsyncयदि आप लॉग इन कर सकते हैं तो सबसे उपयुक्त उपकरण है ssh, क्योंकि यह केवल अंतरों को कॉपी करता है, और कनेक्शन टूटने की स्थिति में आसानी से बीच में पुनः आरंभ कर सकता है।

  • ssh -r निर्देशिका संरचनाओं की पुनरावृत्ति करने के लिए दूसरा सबसे अच्छा विकल्प है।

देख:

  • rsync मैन पेज

  • ssh मैन पेज


सुरक्षित नहीं, बस ftp
JosFabre

यह 2015 है। FTP का उपयोग नहीं किया जाना चाहिए।
तिलो

1
मैं सहमत हूँ। और बेहतर सुरक्षा के सुझाव हमेशा दिए जाने चाहिए। लेकिन सवाल एफ़टीपी के बारे में था, इसलिए किसी को यह नहीं कहना चाहिए कि यह मदद नहीं कर रहा है
जोसफ्रे

मैं आदरपूर्वक असहमत हूं। वे नौकरी के लिए गलत टूल का इस्तेमाल कर रहे हैं। उन्हें 1980 के फीट के बजाय सुरक्षित और वर्तमान उपकरणों का उपयोग करना सीखना चाहिए। अधिक विशेष रूप से, किसी को भी एक ftp सर्वर नहीं चलाना चाहिए: P
Tilo

4
क्षमा करें, लेकिन अभी पिछले सप्ताह मैं एक सर्वर का उपयोग कर रहा था जिसमें केवल FTP कनेक्टिविटी थी। मेरा काम इससे दूर जाना था।
अंती हापाला

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