साइबरविन साइबरड्राइव पथ और विंडोज कमांड प्रॉम्प्ट


2

मैं असंगत रूप से स्थापना के बीच असंगत अभिनय के साथ एक अजीब मुद्दा रहा हूँ, विशेष रूप से scp। मेरे पास दोनों मामलों में मेरे Windows PATH में c: \ cygwin \ bin है। जब मैं निम्नलिखित कमांड एक से चलाता हूं विंडोज कमांड प्रॉम्प्ट हालाँकि, मुझे दो प्रतिष्ठानों के बीच बहुत अलग परिणाम मिलते हैं:

scp /cygdrive/c/something.txt User@server:${HOME}/something.txt

एक मशीन पर यह ठीक फ़ाइल स्थानांतरित करता है, लेकिन दूसरी मशीन पर मुझे एक त्रुटि मिलती है:

/cygdrive/c/something.txt: No such file or directory

हालाँकि, अगर मैं उस मशीन पर इस तरह से कमांड निष्पादित करता हूं जिसने मुझे त्रुटि दी है, तो यह ठीक-ठीक स्थानांतरित होता है:

scp /c/something.txt User@server:${HOME}/something.txt

मतभेद क्यों? क्या मुझे इस काम को / cygdrive / c के साथ करने के लिए cygwin में कॉन्फ़िगर करने की आवश्यकता है?

अद्यतन: यहाँ कुछ और दिलचस्प है। यदि मैं करता हूँ ls /c Windows कमांड प्रॉम्प्ट से मुझे वह सब मिलता है, जिसकी आप उम्मीद करते हैं, C में हर चीज की सूची: हालाँकि, ls /cygdrive/c कहते हैं कि यह मौजूद नहीं है। साइबरविन बैश से उन कमांडों को चलाने से विपरीत व्यवहार होता है।

जवाबों:


3

ऐसा करने का सही तरीका है पर्वत आदेश:

mount --change-cygdrive-prefix /c

या आपके मामले में, डिफ़ॉल्ट को पुनर्स्थापित करें /cygdrive उपसर्ग ...


क्या आप जानते हैं कि यह एक डिफ़ॉल्ट सेटिंग है जिसे नए संस्करण में जोड़ा गया है?
Matt Baker

यह वास्तव में करने के लिए चूक /cygdrive जब तक आप इसे मैन्युअल रूप से नहीं बदलते (कम से कम यह तरीका है कि पिछली बार मैंने जाँच की थी)। आप जानते हैं कि दोनों में कुछ भी आपको रोक नहीं रहा है (प्रलेखन में बताई गई प्रविष्टि / / etc / fstab जोड़ें)
Amro

हम्म। यह अजीब है, यह साइबरविन की एक साफ स्थापना है और मैंने कोई भी विकल्प नहीं बदला है।
Matt Baker

3

समस्या मेरी PATH पूर्वता थी। ये था

PATH=%PATH%;C:\cygwin\bin

लेकिन यह होना चाहिए

PATH=C:\cygwin\bin;%PATH%

पथ तय करने के बाद /cygdrive/c उम्मीद के मुताबिक हल किया।


2

Git स्थापित करने के बाद मुझे इस समस्या का सामना करना पड़ा, इसने मेरे पैट में बिन जोड़ दिया, फिर Cygwin स्थापित किया और ssh के लिए एक Windows सेवा सेटअप करने के लिए ssh-host-config-भाग दिया। समस्या यह प्रतीत होती है कि ssh-host-config जिस तरह से सेवा को पंजीकृत करता है, वह sitd को Git के bash (या scp, या ssh प्रदान की गई कमांड) को क्रियान्वित करने के बजाय Cygwin के बजाय एक scp कनेक्शन स्थापित करने के लिए क्रियान्वित करता है। इसे ठीक करने के लिए, मैंने ssh-host-config द्वारा स्थापित सेवा को हटा दिया। सिग्विन बैश से, मैंने निष्पादित किया cygrunsrv -R sshd। तब मैंने एक पैथ चर ओवरराइड के साथ सेवा को फिर से पंजीकृत किया,

cygrunsrv -I sshd -d "CYGWIN sshd" -p "/usr/sbin/sshd" \
  --env "PATH=/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:$PATH" \
  -a "-D" -u <priv_user> -w <password>

जहाँ Private_user शायद cyg_server है। देख http://cygwin.com/ml/cygwin/2005-05/msg00012.html

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