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

J'essaie d'installer PyQt4 afin que je puisse jouer avec. Le guide d'installation dit que je devais installer Sip. La dernière étape pour Installer Sip consiste à utiliser la commande make install. Windows n'a pas cela, donc je l'ai regardé et tout ce que j'ai vu a dit d'installer Cygwin. Je l'ai fait. Mais...sip est dans C:Python31sip.

Puis-je l'exécuter à partir de la commande Cygwin? Si oui, comment dois-je procéder?

Ou Puis-je l'exécuter à partir de l'invite de commande windows normale? Si oui, comment pourrais-je aller à ce sujet?

322
demandé sur Lii 2009-12-05 05:30:22

13 réponses

Utilisation:

cd /cygdrive/c
606
répondu Otávio Décio 2009-12-05 02:33:38

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 à /cygdrive/c avec un nouveau fichier appelé /c (dans le répertoire d'accueil)

, Alors vous pouvez le faire dans votre shell

cd /c/Foo
cd /c/

Très pratique.

173
répondu karoberts 2016-06-30 17:54:52

cd c: est pris en charge maintenant dans cygwin

122
répondu netawater 2013-03-28 03:24:32

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

cd "C:\Foo"

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

43
répondu Mark Byers 2009-12-05 02:38:48

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
5
répondu Ellis 2014-02-12 09:45:05

Sur une note connexe, vous pouvez également aimer:

shopt -s autocd

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

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

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

2
répondu Benjamin Goodacre 2013-04-12 15:10:21

Définir une variable dans .bashrc:

export C=/cygdrive/c

Ensuite, vous pouvez utiliser

cd $C/

Et l'onglet autocompletes correctement (veuillez inclure le / à la fin)

2
répondu Paco Zarate 2016-01-18 10:50:54

Vous pouvez simplement utiliser

cd C:/Users/../..
2
répondu Praveen Kishor 2018-06-09 02:15:27

Vous pouvez essayer ceci

/cygdrive/c/directoryname
1
répondu tionne jones 2013-06-13 09:39:25

Créez un fichier nommé "overrideBashCdForWindowsPaths" dans votre dossier personnel. Collez les lignes suivantes dans ce fichier et l'enregistrer:

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

echo ". overrideBashCdForWindowsPaths" >> .bashrc

Fermez votre terminal et ouvrez-en un nouveau. Vous pouvez maintenant facilement changer 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 l' fonction " cd "Nous sorte de 'override' builtin "cd" de Bash et déléguer l'appel réel à elle dans la toute dernière ligne.

0
répondu KoenigGunther 2016-05-24 11:11:47

Quelque chose qui mérite d'être mentionné ici est que cygpath de Cygwin, ne gère toujours pas correctement les chemins Windows espacés, en particulier dans les scripts Bash fonctionnant sous Cygwin. L'astuce consiste à comprendre comment Cygwin interprète les guillemets 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'y a actuellement aucune solution de contournement connue en utilisant cygpath, qui peut gérer correctement les espaces dans le contexte de script bash mais vous pouvez utiliser citations dans vos scripts.

0
répondu not2qubit 2017-07-27 10:43:25

Celui que j'aime est: cd C:

Pour avoir linux comme sensation alors faites:

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

Et utilisez ceci comme: ~/folder/..

0
répondu John Tribe 2017-10-06 22:59:06

$cd C:\

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

, Vous êtes maintenant dans le lecteur C.

0
répondu wwei23 2018-06-09 00:13:27