वहाँ अन्य कमांड जैसे scp है, लेकिन फ़ाइलों और फ़ोल्डरों को हटाने के लिए?


12

मैं दूरस्थ स्थान पर सामान कॉपी करने के लिए scp का उपयोग कर रहा हूं। लेकिन कभी-कभी scp अपेक्षा के अनुसार काम नहीं करता है, मैंने पाया है कि कभी-कभी कॉपी ठीक से पूरी नहीं होती है (संभवत: जब मैंने उस फ़ोल्डर में नई फाइलें जोड़ी हैं जो मैं कॉपी कर रहा हूं)।

इसलिए मैं पहले रिमोट फोल्डर को हटाना चाहता हूं और फिर यह सुनिश्चित करने के लिए कॉपी करता हूं कि मुझे ठीक वही चाहिए जो मुझे चाहिए।

क्या अन्य कमांड्स जैसे scp (जैसे srm या smv) हैं? या रिमोट फोल्डर और फाइल्स को हटाने का कोई तरीका है?

जवाबों:


19

ssh कमांड आपको दूरस्थ होस्ट पर बहुत अधिक कमांड निष्पादित करने की अनुमति देगा, उदा।

ssh yourlogin@remotehost rmdir somedir

इस उदाहरण में कहां somedir आपके होमोलिन की होम डायरेक्टरी के सापेक्ष है।


उसके लिए धन्यवाद। मेरे पास एकमात्र तरीका विधि के साथ है कि हर बार जब आप इसे कॉल करते हैं तो आपको फिर से "लॉगिन" करना होगा :(। चूंकि मेरा लक्ष्य एम्बेडेड है इसलिए मैं ssh कुंजियों का उपयोग नहीं कर सकता क्योंकि यह सब अधिक लिखा हुआ है, इसलिए मैं कोशिश कर रहा हूं एक कमांड में ऐसा करें। rsync आशाजनक लगता है। लेकिन, +1 चूंकि यह प्रश्न का उत्तर देता है :))
code_fodder

5
@code_fodder आपको rsync के साथ भी लॉगिन करना होगा। वास्तव में, आपको फिर से लॉग इन करना होगा सब तरीकों। वास्तव में, ssh के साथ आप कम से कम एक बार में कई कमांड निष्पादित कर सकते हैं: ssh you@host bash -c "command1;command2;command3; commandN"
terdon

@terdon यह एक अच्छा बिंदु है और nicley धन्यवाद काम करता है :)
code_fodder

3

रुपीक्स एक पूरे रास्ते / पेड़ की नकल करेगा और गंतव्य पर पहले से ही फाइलों की जांच करेगा और यदि वे अपरिवर्तित हैं तो उन्हें कॉपी करने की जहमत नहीं उठानी चाहिए। यदि आप --delete विकल्प का उपयोग करते हैं, तो यह उन फ़ाइलों को हटा देगा जो गंतव्य पर हैं जो अब स्रोत पर नहीं हैं। यह ssh पर काम करता है


मैं rsync के साथ खिलवाड़ कर रहा था, क्योंकि किसी ने scp के बारे में मेरी एक अन्य पोस्ट में इसका उल्लेख किया था। मैंने अपने स्थानीय पीसी पर rsync स्थापित किया है लेकिन दूरस्थ पीसी (एक एम्बेडेड इकाई) पर नहीं। मैं कमांड का उपयोग कर रहा था rsync -avz -e shh root@location:/path/to/dest /path/from/host लेकिन जब मैं पासवर्ड दर्ज करता हूं तो यह विफल हो जाता है sh: rsync: not found। क्या इसका मतलब है कि rsync को दूरस्थ पीसी पर मौजूद होना चाहिए? धन्यवाद!
code_fodder

1
@code_fodder हाँ, इसे क्या करना है यह बताने के लिए रिमोट सिस्टम पर चलने वाले प्रोग्राम की आवश्यकता है। यह एक सीधी नकल कार्यक्रम नहीं है
Canadian Luke

@CanadianLuke ... लानत :(
code_fodder

@code_fodder बस इसे स्थापित करें! अधिक उपयोगी तो नहीं
Canadian Luke

एम्बेडेड समाधान के आधार पर rsync आसान के किसी भी डिग्री के साथ उपलब्ध हो सकता है या नहीं भी हो सकता है ... हालांकि यह एक बहुत ही सामान्य अशुद्धता है जैसा कि मैंने कहा, एम्बेडेड समाधान पर निर्भर करता है। नोट: Rsync को हर समय चलाना नहीं है, लेकिन इसे मांग पर चलाने के लिए मौजूद रहने की आवश्यकता है।
jerm

3

यदि आपका दूरस्थ SSH सर्वर समर्थन करता है एसएफटीपी सबसिस्टम (सबसे अधिक, जब तक कि यह स्पष्ट रूप से अक्षम न हो), आप उपयोग कर सकते हैं sftp खोल (या कोई अन्य SFTP ग्राहक ) दूरस्थ सर्वर पर फ़ाइलों और निर्देशिकाओं में हेरफेर करने के लिए।

दुर्भाग्य से, एक बात बुनियादी है sftp खोल जाहिरा तौर पर करता है नहीं संभाल पुनरावर्ती निर्देशिका हटाने है; निर्देशिका को हटाने के लिए, आपको पहले इसकी सभी सामग्रियों को हटाना होगा। ज्यादातर अन्य ग्राहक (विशेषकर ग्राफिकल वाले) आमतौर पर इसका समर्थन करते हैं, हालांकि।

(आपने यह नहीं बताया कि आपका स्थानीय ओएस क्या है, लेकिन यदि यह लिनक्स है, तो आप कर सकते हैं GUI SFTP क्लाइंट के रूप में अपने मूल फ़ाइल प्रबंधक का उपयोग करें इसे किसी URL जैसे sftp पर इंगित करके: // उपयोगकर्ता @ मेज़बान / पथ /। विंडोज के लिए, WinSCP एक सभ्य ग्राहक है, और FileZilla एक अच्छा क्रॉस-प्लेटफॉर्म समाधान है।)


1

दूरस्थ (/ स्थानीय) निर्देशिका को खाली करने के लिए, इस तरह rsync का उपयोग करें:

rsync -r --delete-excluded --exclude=* / server:/tmp/empty_this_dir/

सावधान रहें - यह निकालता है सब कुछ निर्दिष्ट गंतव्य के नीचे!

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