SSH को दूरस्थ सर्वर से जोड़ने के लिए SSH का उपयोग करते समय, आप रिक्त स्थान और ऐसे दुर्गम पथ से कैसे बच सकते हैं? एक साधारण बैकस्लैश स्थानीय बैश प्रॉम्प्ट के लिए जगह से बच जाता है, लेकिन रिमोट मशीन पर अंतरिक्ष को पथ में एक ब्रेक के रूप में पढ़ा जा रहा है, इस प्रकार उस पथ के अंत को चिह्नित किया जाता है।
इसलिए जब मैं करता हूं तो rsync -avz /path/to/source/some\ dir/ user@host.tld:/path/to/dest/some\ dir/
यह होता है कि रिमोट सर्वर पढ़ रहा है कि जैसे ही /path/to/dest/some/
वह और वह गंतव्य दूर से नहीं पा सकते हैं, क्योंकि वास्तविक गंतव्य "कुछ" के बजाय "कुछ dir" है।
अगर मैं एक ही कमांड का प्रयास करता हूं और स्थानीय बैश प्रॉम्प्ट को प्राप्त करने के लिए बैकस्लैश और स्पेस से बचता हूं और रिमोट सर्वर के लिए बैकलैश को बनाए रखता हूं (तीन बैकस्लैश कुल:) /path/to/dest/some\\\ dir/
, यह वास्तव में बैकलैश को रिमोट सर्वर पर भेजता है, लेकिन रिमोट सर्वर इसके बाद अंतरिक्ष और उसके बाद के पात्रों को हटाने के /path/to/dest/some\/
बजाय मार्ग की व्याख्या करता /path/to/dest/some\ dir/
है।
यदि मैं उद्धरण के साथ पथ को लपेटने की कोशिश करता हूं, तो यह उसी तरह से बहुत व्यवहार करता है, प्रभावी रूप से अंतरिक्ष में रास्ता काट रहा है। इसलिए यह केवल स्थानीय बैश प्रॉम्प्ट को प्राप्त करने के लिए काम करता है।
प्रारंभ में मैं एक पथ का उपयोग कर रहा था जिसमें एक "-" (स्पेस-हाइफ़न-स्पेस) खंड था, और रिमोट सर्वर एक त्रुटि लौटा रहा था rsync: on remote machine: -: unknown option
जो कि इस पूरे अंतरिक्ष-भागने के प्रयास को पहली जगह में शुरू किया था।
तो मुझे दूरस्थ सर्वर के साथ ठीक से काम करने के लिए क्या करना चाहिए, बिना रिक्त स्थान या अन्य गलत वर्णों को हटाने के लिए, जैसे कि दुर्गम रास्ते से हाइफ़न?
-s
पतों की आवश्यकता के बिना इस मुद्दे को मैन्युअल रूप से डबल बचने लागू करने के लिए।