Scp का उपयोग कर एक निर्देशिका से एक दूरस्थ निर्देशिका के लिए सभी फ़ाइलों की प्रतिलिपि कैसे करें?


68

मेरा लक्ष्य प्रति केवल है सभी फाइलों से ~ / local_dir को user@host.com / var / www / html / target_dir का उपयोग कर SCP और local_dir श्रेणी में local_dir निर्माण नहीं करतीं।

/var/www/html/target_dir/files..

लेकिन नहीं

/var/www/html/target_dir/local_dir/files.. जब -r पैरामीटर का उपयोग करें


1
करता है scp * user@host.com:/var/www/html/target_dirकि तुम क्या चाहते हो ना? यदि ऐसा है, तो कृपया जो आप करने की कोशिश कर रहे हैं और अब तक की कोशिश की है, और अधिक विवरण के साथ संपादित करें
माइकल होमर

लागू करना /। अब कोई काम नहीं है। यहाँ अधिक
Tsulatsi Tamim

जवाबों:


91

scp -r तर्क है। तो, प्रयोग करके देखें:

$ scp -r ~/local_dir user@host.com:/var/www/html/target_dir

-R तर्क cp में -r arg की तरह ही काम करता है, यह आपके पूरे फ़ोल्डर और सभी फाइलों और उपनिर्देशिकाओं को अंदर स्थानांतरित कर देगा।


5
आपका कमांड local_dir/ var / www / html / target_dir में डायरेक्टरी बनाई गई मेरा लक्ष्य केवल फाइलों की प्रतिलिपि है।
एडगरसा कारका

क्षमा करें, मुझे यह गलत लगा। फिर बस कमांड दोहराएं, लेकिन इस तरह: $ scp -r ~/local_dir user@host.com:/var/www/html/यदि आवश्यक हो तो नई निर्देशिका का नाम बदलें।
parazyd

8
या $ scp -r ~/local_dir/* user@host.com:/var/www/html/target_dirजो भी अपनी नाव तैरता है।
parazyd

रिमोट से कॉपी करते समय कुछ निर्देशिकाओं को स्थानीय से बाहर कैसे करें
सुशीवम

13
वाइल्डकार्ड *को एक बिंदी में बदलें .और आप निर्देशिका सामग्री (किसी भी बिंदी फ़ाइलों सहित) को कॉपी कर लेंगे बिना निर्देशिका को कॉपी किए। scp -pr ~/local_dir/. user@example.com:/path/to/target_dir
रोज़ा

19

यदि आपका लक्ष्य वाइल्डकार्ड से सभी फ़ाइलों को स्थानांतरित करना है local_dir, *तो यह चाल है:

$ scp ~/local_dir/* user@host.com:/var/www/html/target_dir

-rविकल्प "रिकर्सिवली" का अर्थ है, ताकि आप इसे लिखना चाहिए जब आप एक पूरी निर्देशिका या कई निर्देशिकाओं हस्तांतरण करने के लिए कोशिश कर रहे हैं।

से man scp:

-r 
Recursively copy entire directories. Note that scp follows symbolic links encountered in the tree traversal.

इसलिए यदि आपके पास उप-निर्देशिकाएं हैं local_dir, तो अंतिम उदाहरण केवल फ़ाइलों को स्थानांतरित करेगा, लेकिन यदि आप -rविकल्प सेट करते हैं , तो यह फ़ाइलों और निर्देशिकाओं को स्थानांतरित करेगा।


1+ क्योंकि आपको सही उत्तर प्राप्त करने के लिए स्वीकृत उत्तर में टिप्पणियों को पढ़ने की आवश्यकता है, जबकि यह केवल इसे सीधे समझाता है।
एंड्रे क्रिस्टोफर एंडरसन

17

जोड़ /.अपने स्रोत निर्देशिका के लिए निर्देशिका खुद के बजाय उसकी सामग्री को स्थानांतरित करेंगे। वाइल्डकार्ड समाधान के विपरीत, इसमें कोई छिपी हुई फ़ाइलें भी शामिल होंगी।

$ scp -r ~/local_dir/. user@host.com:/var/www/html/target_dir

इस समाधान का श्रेय रूईमा को जाता है, लेकिन मैंने सोचा कि इसे केवल एक टिप्पणी के रूप में ही वास्तविक उत्तर के रूप में पोस्ट किया जाना चाहिए।


0

इन कदमों का अनुसरण करें:

  1. local_dirइसकी सभी उप- निर्देशिकाओं के साथ निर्देशिका की प्रतिलिपि बनाएँ :

    scp -r ~/local_dir user@host.com /var/www/html/target_dir
    
  2. केवल और केवल local_dirनिर्देशिका की सामग्री की प्रतिलिपि बनाएँ local_dir:

    scp -r ~/local_dir/* user@host.com /var/www/html/target_dir
    
  3. उपयोग न करें: scp -r ~/local_dir/. user@host.com /var/www/html/target_dirजैसा कि यह एक त्रुटि फेंकता है (बस परीक्षण किया और निम्नलिखित त्रुटि प्राप्त की):

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