2012-07-21 10 views
9

क्या scp निर्देशिका में सभी फ़ाइलों को एक दूरस्थ मशीन पर दोबारा निर्देशिका में रखने और उनके मूल फ़ाइल नाम रखने के लिए कोई तरीका है लेकिन निर्देशिका में कॉपी नहीं है?वर्तमान निर्देशिका को छोड़कर रिकर्सिव स्किप

dir1/file 
dir1/dir2/file2 

इसलिए dir1 की सामग्री केवल कॉपी की जाएगी। dir1 नहीं बनाया जाएगा। dir2 निर्देशिका हालांकि file2 के साथ बनाई जाएगी।

मैंने scp -r dir1 remote:/newfolder को आजमाया है, लेकिन यह निर्देशिका में पर dir1 बनाता है। मैं नहीं चाहता कि यह dir1 निर्देशिका बनाएं। बस dir1 के अंदर सभी फ़ाइलों को newfolder में डालें।

उत्तर

19
cd dir1 
scp -r . remote:/newfolder 

यह scp नाम dir1 साथ कुछ भी करने के लिए एक मौका देने से बचा जाता है रिमोट मशीन पर। आप यह भी पसंद कर सकते हैं:

(cd dir1; scp -r . remote:/newfolder) 

यह अपने मूल निर्देशिका में अपने खोल छोड़ देता है, जबकि एक ही (क्योंकि यह एक उप खोल कि cd और scp संचालन करता शुरूआत) काम कर रहे।

8

इसका मतलब यह है खोल विस्तार के द्वारा बनाई गई फ़ाइलों की सूची कॉपी dir1/* करने के लिए दूरस्थ स्थान दूरदराज:/newfolder

scp -r dir1/* remote:/newfolder 
+0

मुझे यह जवाब पसंद है क्योंकि यह 'cd' करने से बचाता है। यदि 'एसपीपी' के बाद आपका अगला कथन आपको अपने मूल डीआईआर में रहने की उम्मीद करता है, तो आपको इसे वापस 'सीडी' करने के लिए एक और कदम करना होगा। – jreancsu

1

आप रिश्तेदार पथ के साथ डॉट सिंटैक्स का उपयोग कर सकते हैं।

scp -r dir1/. remote:/newfolder 

यदि रिमोट निर्देशिका मौजूद नहीं है तो यह बनाया गया है।

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