2012-04-10 5 views
37

मैंने put -r directory/* की कोशिश की है, जो केवल फाइलें अपलोड की गई हैं और फ़ोल्डर नहीं। मुझे त्रुटि दी, Couldn't canonicalise नहीं कर सकता।मैं एक संपूर्ण फ़ोल्डर कैसे अपलोड कर सकता हूं, जिसमें लिनक्स पर sftp का उपयोग करके अन्य फ़ोल्डरों को शामिल किया जा सकता है?

किसी भी मदद की सराहना की जाएगी।

+3

प्रयास करें स्लैश और तारांकन के बिना "निर्देशिका डाल"। –

+0

https://stackoverflow.com/questions/10084941/how-can-i-upload-an-entire-folder-that-contains-other- फ़ोल्डर्स-using-sftp-on-li/44197588#44197588 –

उत्तर

25

Here आप scp का उपयोग कर निर्देशिका की प्रतिलिपि बनाने के तरीके के बारे में विस्तृत स्पष्टीकरण प्राप्त कर सकते हैं। आपके मामले में, यह होगा कुछ की तरह:

$ scp -r foo [email protected]:/some/remote/directory/bar 

यह एक दूरस्थ होस्ट की निर्देशिका "बार" करने के लिए स्थानीय मेजबान से निर्देशिका "foo" कॉपी कर देंगे। यहां -r है - पूरी तरह से निर्देशिकाओं की प्रतिलिपि बनाएँ।

आप इसी वाक्यविन्यास के साथ rcp का भी उपयोग कर सकते हैं। उनके बीच एकमात्र अंतर यह है कि scp सुरक्षित खोल का उपयोग करता है और rcp दूरस्थ खोल का उपयोग करता है।

बीटीडब्ल्यू आपके द्वारा वर्णित त्रुटि "कैनोनिकल" त्रुटि दिखाई नहीं देगी जब sftp सर्वर कमांड में उल्लिखित फ़ाइल/निर्देशिका तक पहुंचने में असमर्थ है।

अद्यतन: उन उपयोगकर्ताओं के लिए जो put विशेष रूप से उपयोग करना चाहते हैं, कृपया यहां बेन थीलकर का उत्तर दें।

+0

यह तब काम नहीं करेगा जब लक्ष्य केवल एसएफटीपी का समर्थन करता है और एसएसएच नहीं। – Teekin

-6

इसके बजाय scp का उपयोग करें। यह एसएसएच का भी उपयोग करता है और आसानी से रिकर्सन को संभाल सकता है।

+3

'scp' वास्तव में बेहतर है, लेकिन सभी 'sftp' सर्वर' scp' कनेक्शन का समर्थन नहीं करते हैं, इसलिए कभी-कभी 'sftp' की आवश्यकता होती है। –

+0

फिलहाल मैं एक सी ++ कोड बेस में एसएफटीपी समर्थन के साथ हूं लेकिन एसपीपी समर्थन नहीं है, और इसलिए यह मेरे लिए भी काम नहीं करता है। एसपीपी हमेशा जवाब नहीं है। – PThomasCS

151

वास्तव में इस सवाल का सीधा जवाब चाहते लोगों के लिए (बजाय SFTP के अलावा कुछ का उपयोग करने के लिए कहा जा रहा से) ...

put -r local/path/to/directoryName 

अपलोड निर्देशिका सर्वर पर पहले से काम कर निर्देशिका में मौजूद होना चाहिए, तो आपको इसे पहले बनाने की आवश्यकता हो सकती है।

mkdir directoryName 
+32

यह स्वीकार्य उत्तर होना चाहिए। –

+3

जब मैं put -r को कुछ कोशिश करता हूं तो मुझे "अवैध ध्वज -r" –

+3

मिलता है - कोई भी इसे स्वीकार्य उत्तर देता है। – Nightwolf

0
sftp> mkdir source 
sftp> put -r source 
Uploading source/ to /home/myself/source 
Entering source/ 
source/file1 
source/file2 

enter image description here

संबंधित मुद्दे

 संबंधित मुद्दे