web-dev-qa-db-fra.com

Comment naviguer dans un répertoire dans C: \ avec Cygwin?

J'essaye d'installer PyQt4 pour que je puisse déconner avec ça. Le guide d'installation disait que je devais installer Sip . La dernière étape de installer Sip consiste à utiliser la commande make install. Windows ne l'a pas, alors j'ai regardé et tout ce que j'ai vu dit d'installer Cygwin. Donc j'ai fait. Mais ... sip est dans 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?

343
Andrew

Utilisation:

cd /cygdrive/c
666
Otávio Décio

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

ln -s /cygdrive/c /c

Cela crée un lien symbolique vers /cygdrive/c avec un nouveau fichier nommé /c (dans le répertoire de base).

Ensuite, vous pouvez le faire dans votre shell

cd /c/Foo
cd /c/

Très utile.

187
karoberts

cd c: est maintenant supporté par cygwin

133
netawater

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

cd "C:\Foo"

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

44
Mark Byers

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
6
Ellis

Vous pouvez simplement utiliser

cd C:/Users/../..
3
Praveen Kishor

Sur une note connexe, vous pourriez aussi aimer:

shopt -s autocd

Cela vous permet de créer un répertoire en tapant simplement le répertoire

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

Pour que le processus soit persistant, vous devez l'ajouter à votre ~/.bashrc

2
Benjamin Goodacre

Définir une variable dans .bashrc:

export C=/cygdrive/c

alors vous pouvez utiliser

cd $C/

et l'onglet s'auto-complète correctement (veuillez inclure le/à la fin)

2
Paco Zarate

tu peux essayer ça

/cygdrive/c/directoryname
1
tionne jones

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, alors que vous êtes dans votre dossier HOME:

echo ". overrideBashCdForWindowsPaths" >> .bashrc

Fermez votre terminal et ouvrez-en un nouveau. Vous pouvez maintenant facilement changer de 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 "remplaçons" le "cd" de Bash et en déléguons l'appel dans la dernière ligne.

0
KoenigGunther

Il est intéressant de noter ici que cygpath de Cygwin ne 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 Cygwin interprète les guillemets dans les scripts Bash.

Ce qui suit not fonctionne:

#!/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 utilisant cygpath, qui puisse gérer correctement les espaces dans le contexte de script bash, mais vous pouvez utiliser des guillemets dans vos scripts.

0
not2qubit

$cd C:\

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

Vous êtes maintenant dans le lecteur C.

0
wwei23

Celui que j'aime bien est: cd C:

Pour que Linux se sente alors faire:

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

et utiliser ceci comme: ~/folder/..

0
John Tribe