Hoe navigeer je met Cygwin naar een map in C:\?

Ik probeer PyQt4te installeren zodat ik ermee kan rommelen. In de installatiehandleiding stond dat ik Sipmoest installeren. De laatste stap om Sip installerenis het gebruik van de make installcommando. Windows heeft dat niet, dus ik heb het opgezocht en alles wat ik zag zei Cygwin te installeren. Dus ik deed. Maar…sip staat in C:\Python31\sip.

Kan ik dit uitvoeren vanaf het Cygwin-commando? Zo ja, hoe zou ik dat doen?

Of kan ik dit uitvoeren vanaf de normale Windows-opdrachtprompt? Zo ja, hoe zou ik dat aanpakken?


Antwoord 1, autoriteit 100%

Gebruik:

cd /cygdrive/c

Antwoord 2, autoriteit 26%

Ik zal iets toevoegen dat me veel helpt met cygwin. Wanneer ik een nieuw systeem opzet, doe ik dit altijd

ln -s /cygdrive/c /c

Hiermee wordt een symbolische linkgemaakt naar /cygdrive/cmet een nieuw bestand genaamd /c(in de homedirectory)

Dan kun je dit in je shell doen

cd /c/Foo
cd /c/

Heel handig.


Antwoord 3, autoriteit 18%

cd C:wordt nu ondersteund in cygwin


Antwoord 4, autoriteit 7%

Je hebt al een antwoord geaccepteerd, maar ik dacht even te vermelden dat het volgende ook werkt in Cygwin:

cd "C:\Foo"

Ik denk dat de cd /cygdrive/cmethode beter is, maar soms is het handig om te weten dat je dit ook kunt doen.


Antwoord 5

Je kunt gewoon

. gebruiken

cd C:/Users/../..

Antwoord 6

Omdat je dit waarschijnlijk vaak wilt doen, voeg je aliassen toe aan je .bashrc-bestand, zoals:

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

Dan kun je gewoon op de opdrachtregel typen:

cdc

Antwoord 7

Definieer een variabele in .bashrc :

export C=/cygdrive/c

dan kun je

cd $C/

en het tabblad wordt automatisch correct aangevuld (voeg de / toe aan het einde)


Antwoord 8

Over een verwante opmerking, vind je misschien ook leuk:

shopt -s autocd

Hiermee kun je een map op cd zetten door gewoon in de map te typen

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

Als u persistent wilt maken, moet u het toevoegen aan uw ~/.bashrc


Antwoord 9

u kunt dit proberen

/cygdrive/c/directoryname

Antwoord 10

Degene die ik leuk vind is: cd C:

Als je Linux wilt voelen, doe dan:

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

en gebruik dit als volgt: ~/folder/..


Antwoord 11

Maak een bestand met de naam “overrideBashCdForWindowsPaths” in uw HOME-map. Plak de volgende regels in dat bestand en sla het op:

#!/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")"
}

Typ vervolgens de volgende opdracht in een terminal, terwijl u zich in uw HOME-map bevindt:

echo ". overrideBashCdForWindowsPaths" >> .bashrc

Sluit uw terminal en open een nieuwe. U kunt nu eenvoudig naar die Windows-map gaan door simpelweg te typen

cd C:\Python31\sip

Het script leest het laatste commando, extraheert het pad en geeft het door aan Cygwin’s pad-conversietool. Door de functie “cd” te noemen, ‘overschrijven’ we de ingebouwde ‘cd’ van Bash en delegeren we de daadwerkelijke aanroep ernaar in de allerlaatste regel.


Antwoord 12

Iets dat het vermelden waard is, is dat Cygwin’s cygpathnog steeds niet goed omgaat met gespreide Windows-paden, vooral in Bash-scripts die onder Cygwin draaien. De truc is om te begrijpen hoe Cygwinaanhalingstekens in Bash-scripts interpreteert.

Het volgende werkt niet:

#!/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

Maar dit werkt wel:

#!/bin/bash
# Cygwin-ism: No quotes!
TBDIR=/cygdrive/c/Program\ Files\ \(x86\)/MyDir/
if [ -d "${TBDIR}" ]; then 
...

Voor zover ik weet, is er momenteel geen tijdelijke oplossing bekend met cygpath, die spaties in de bash-scriptingcontext goed kan verwerken, maar je kunt wel aanhalingstekens gebruiken in je scripts.


Antwoord 13

$cd C:\

>(Druk op enter als je deze regel ziet)

Je bent nu in de C-schijf.

Other episodes