Comment accéder à un répertoire en C: \ avec Cygwin?

371

J'essaie d'installer PyQt4 pour pouvoir jouer avec. Le guide d'installation m'a dit que je devais installer Sip . La dernière étape de l' installation de Sip consiste à utiliser la make installcommande. Windows n'a pas cela, donc je l'ai recherché et tout ce que j'ai vu a dit d'installer Cygwin. Alors je l'ai fait. Mais ... une gorgée est là C:\Python31\sip.

Puis-je l'exécuter à partir de la commande Cygwin? Si oui, comment ferais-je cela?

Ou puis-je l'exécuter à partir de l'invite de commande Windows normale? Si oui, comment pourrais-je m'y prendre?

Andrew
la source

Réponses:

721

Utilisation:

cd /cygdrive/c
Otávio Décio
la source
90
Vous pouvez également utilisercd c:/
ihaveitnow
et assurez-vous qu'il n'y a pas d'espace dans et après/cygdrive/c
DeltaCap019
196

Je vais ajouter quelque chose qui m'aide beaucoup avec cygwin. Chaque fois que je mets en place un nouveau système, je le fais toujours

ln -s /cygdrive/c /c

Cela crée un lien symbolique vers /cygdrive/cun nouveau fichier appelé /c(dans le répertoire personnel)

Ensuite, vous pouvez le faire dans votre shell

cd /c/Foo
cd /c/

Très utile.

karoberts
la source
1
Notez que cela vous empêche d'avoir des fichiers / répertoires nommés cavec la possibilité de les référencer normalement.
Raj
1
J'ai récemment installé MSYS2 et c'était le comportement par défaut, avec /cygdriveen fait ne fonctionne pas ...
joeeey
136

cd c: est maintenant pris en charge dans cygwin

netawater
la source
Valable pour cd e:et l'invite sera/cygdrive/e
Kiquenet
49

Vous avez déjà accepté une réponse, mais je pensais simplement mentionner que ce qui suit fonctionne également dans Cygwin:

cd "C:\Foo"

Je pense que la cd /cygdrive/cméthode est meilleure, mais il est parfois utile de savoir que vous pouvez aussi le faire.

Mark Byers
la source
7

Vous pouvez simplement utiliser

cd C:/Users/../..
Praveen Kishor
la source
6

Comme vous voudrez probablement le faire souvent, ajoutez des alias dans votre fichier .bashrc, comme:

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

Ensuite, vous pouvez simplement taper sur la ligne de commande:

cdc
Ellis
la source
3

Définissez une variable dans .bashrc:

export C=/cygdrive/c

alors vous pouvez utiliser

cd $C/

et l'onglet se complète automatiquement (veuillez inclure le / à la fin)

Paco Zarate
la source
2

Sur une note connexe, vous aimerez peut-être aussi:

shopt -s autocd

Cela vous permet de cd un dir en tapant simplement le dir

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

Pour faire est persistant, vous devez l'ajouter à votre ~/.bashrc

Benjamin Goodacre
la source
1

tu peux essayer ça

/cygdrive/c/directoryname
tionne jones
la source
1

Créez un fichier nommé "overrideBashCdForWindowsPaths" dans votre dossier HOME. Collez les lignes suivantes dans ce fichier et enregistrez-le:

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

Ensuite, tapez la commande suivante dans un terminal, lorsque vous êtes dans votre dossier HOME:

echo ". overrideBashCdForWindowsPaths" >> .bashrc

Fermez votre terminal et ouvrez-en un nouveau. Vous pouvez maintenant facilement basculer dans ce dossier Windows en tapant simplement

cd C:\Python31\sip

Le script lit la dernière commande, extrait le chemin et le transmet à l'outil de conversion de chemin de Cygwin. En nommant la fonction "cd", nous "trions" le "cd" intégré de Bash et lui déléguons l'appel réel dans la toute dernière ligne.

KoenigGunther
la source
Merci @KoenigGunther, ça marche! Mais un peu lent pour changer de répertoire. Existe-t-il un moyen de le rendre plus rapide, tout comme l'utilisation de devis? par exemplecd "C:\Python31\sip"
user11392987
1

Celui que j'aime est: cd C:

Pour avoir Linux comme une sensation, alors faites:

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

et utilisez ceci comme: ~/folder/..

John Tribe
la source
0

Il convient de mentionner ici que Cygwin cygpathne gère toujours pas correctement les chemins Windows espacés, en particulier dans les scripts Bash exécutés sous Cygwin. L'astuce consiste à comprendre comment Cygwininterprète les citations dans les scripts Bash.

Ce qui suit ne fonctionne pas :

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

Mais cela fonctionne:

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

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

Pour autant que je sache, il n'existe actuellement aucune solution de contournement connue cygpathqui puisse gérer correctement les espaces dans le contexte de script bash mais vous pouvez utiliser des guillemets dans vos scripts.

not2qubit
la source
0

$cd C:\

> (Appuyez sur Entrée lorsque vous voyez cette ligne)

Vous êtes maintenant dans le lecteur C.

wwei23
la source
C'est >parce que la barre oblique inversée en fin de ligne a échappé à la nouvelle ligne ...
Gert van den Berg