Cygwin के साथ C: \ में निर्देशिका में कैसे नेविगेट करें?


370

मैं PyQt4 को स्थापित करने की कोशिश कर रहा हूं ताकि मैं इसके साथ गड़बड़ कर सकूं । इंस्टॉलेशन गाइड ने कहा कि मुझे एसआईपी स्थापित करना होगा । Sip को इनस्टॉल करने का अंतिम चरण make installकमांड का उपयोग करना है । Windows के पास ऐसा नहीं है, इसलिए मैंने इसे देखा और मैंने जो कुछ भी देखा उसे Cygwin को इंस्टॉल करने के लिए कहा। तो मैंने किया। लेकिन ... घूंट में है C:\Python31\sip

क्या मैं इसे सिग्विन कमांड से चला सकता हूं? यदि हां, तो मैं ऐसा कैसे करूंगा?

या मैं सामान्य विंडोज़ कमांड प्रॉम्प्ट से इसे चला सकता हूं? यदि हां, तो मैं उसके बारे में कैसे जाऊंगा?

जवाबों:



195

मैं कुछ ऐसा जोड़ूंगा जो मुझे साइबरविन के साथ बहुत मदद करता है। जब भी कोई नई व्यवस्था स्थापित करता हूं, मैं हमेशा ऐसा करता हूं

ln -s /cygdrive/c /c

यह एक बनाता है प्रतीकात्मक कड़ी करने के लिए /cygdrive/cकहा जाता है एक नई फ़ाइल के साथ /c(घर निर्देशिका में)

फिर आप अपने शेल में ऐसा कर सकते हैं

cd /c/Foo
cd /c/

बेहद सुविधाजनक।


1
ध्यान दें कि यह आपको फ़ाइलों / निर्देशिकाओं को cसामान्य रूप से संदर्भित करने की क्षमता के साथ नामित होने से रोकता है ।
राज

1
मैंने हाल ही में MSYS2 स्थापित किया और यह डिफ़ॉल्ट व्यवहार था, /cygdriveवास्तव में काम नहीं करने के साथ ...
joeeey

135

cd c: अब सिगविन में समर्थित है


के लिए मान्य cd e:और शीघ्र होगा/cygdrive/e
Kiquenet

49

आपने पहले ही एक उत्तर स्वीकार कर लिया था, लेकिन मुझे लगा कि मैं उल्लेख करूंगा कि निम्नलिखित सिग्विन में भी काम करता है:

cd "C:\Foo"

मुझे लगता है कि cd /cygdrive/cविधि बेहतर है, लेकिन कभी-कभी यह जानना उपयोगी होता है कि आप भी ऐसा कर सकते हैं।



6

जैसा कि आप शायद अक्सर ऐसा करना चाहते हैं, अपने .bashrc फ़ाइल में उपनाम जोड़ें, जैसे:

alias cdc='cd /cygdrive/c'
alias cdp='cd /cygdrive/p'

तब आप केवल कमांड लाइन पर टाइप कर सकते हैं:

cdc

3

एक चर .bashrc को परिभाषित करें:

export C=/cygdrive/c

तो आप उपयोग कर सकते हैं

cd $C/

और टैब स्वतः पूर्णताएं (कृपया अंत में / शामिल करें)


2

संबंधित नोट पर, आप यह भी पसंद कर सकते हैं:

shopt -s autocd

यह आपको केवल dir में टाइप करके एक dir cd की अनुमति देता है

[user@host ~]$ /cygdrive/d
cd /cygdrive/d
[user@host /cygdrive/d]$ 

लगातार बनाने के लिए आपको इसे अपने साथ जोड़ना चाहिए ~/.bashrc



1

अपने गृह फ़ोल्डर में "ओवरराइडबाश कार्डफ़ॉर विंडोज पैथ्स" नामक एक फ़ाइल बनाएं। निम्न पंक्तियों को उस फ़ाइल में पेस्ट करें और इसे सहेजें:

#!/bin/bash

function cd() {
    CD_PATH="$(history | tail -1 | sed -e "s,.*${FUNCNAME[0]}\s*,,g")"

    if [ -z "${CD_PATH}" -o "${CD_PATH}" = "~" ]; then
        CD_PATH="${HOME}"
    fi

    builtin cd "$(cygpath "$CD_PATH")"
}

अगला, जब आप अपने होम फ़ोल्डर में होते हैं, तो टर्मिनल में निम्न कमांड टाइप करें:

echo ". overrideBashCdForWindowsPaths" >> .bashrc

अपना टर्मिनल बंद करें और एक नया खोलें। आप अब बस टाइप करके आसानी से उस विंडोज फोल्डर में बदल सकते हैं

cd C:\Python31\sip

स्क्रिप्ट आखिरी कमांड पढ़ती है, पथ को निकालती है और इसे सिग्विन के पथ-रूपांतरण टूल में भेजती है। फ़ंक्शन "cd" का नामकरण करके हम 'बैश के बिलिन' cd को ओवरराइड करते हैं और वास्तविक कॉल को अंतिम पंक्ति में रखते हैं।


धन्यवाद @KoenigGunther, यह काम करता है! लेकिन निर्देशिका बदलने के लिए थोड़ा धीमा है। क्या बोली का उपयोग करने की तरह इसे तेज़ बनाने का कोई तरीका है? जैसेcd "C:\Python31\sip"
user11392987

1

मुझे जो पसंद है वह है: cd C:

लग रहा है जैसे linux करने के लिए:

ln -s /cygdrive/c/folder ~/folder

और इस तरह का उपयोग करें: ~/folder/..


0

यहां जो कुछ ध्यान देने योग्य है वह यह है कि साइग्विन cygpath, अभी भी स्पॉन्सर्ड विंडोज रास्तों को ठीक से नहीं संभालता है, खासकर सिगविन के तहत चलने वाली बैश स्क्रिप्ट में। ट्रिक यह समझने की है कि Cygwinबैश स्क्रिप्ट में उद्धरण की व्याख्या कैसे की जाती है।

निम्नलिखित काम नहीं करता है:

#!/bin/bash
TBDIR="/cygdrive/c/Program\ Files\ \(x86\)/MyDir/"

if [ -d "${TBDIR}" ]; then 
    echo "Found MyDir directory at: ${TBDIR}"
    cd "$TBDIR"
else 
    echo "MyDir program directory not found!"
    echo "Wrong DIR path: ${TBDIR}"
    exit 1
fi

लेकिन यह काम करता है:

#!/bin/bash
# Cygwin-ism: No quotes!
TBDIR=/cygdrive/c/Program\ Files\ \(x86\)/MyDir/

if [ -d "${TBDIR}" ]; then 
...

जहां तक ​​मुझे पता है, वर्तमान में कोई ज्ञात वर्कअराउंड का उपयोग नहीं है cygpath, जो बैश स्क्रिप्टिंग संदर्भ में रिक्त स्थान को ठीक से संभाल सकता है लेकिन आप अपनी स्क्रिप्ट में उद्धरण का उपयोग कर सकते हैं।


0

$cd C:\

> (इस लाइन को देखने पर एंटर दबाएं)

अब आप C ड्राइव में हैं।


ऐसा >इसलिए है क्योंकि लाइन के अंत में बैकस्लैश बच गई थी न्यूलाइन ...
गर्ट वैन डेन बर्ग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.