2009-12-05 18 views
302

Estoy tratando de instalar PyQt4, así que puedo perder el tiempo con él. La guía de instalación decía que tenía que instalar Sip. El último paso para installing Sip es usar el comando make install. Windows no tiene eso, así que lo busqué y todo lo que vi dijo que instalara Cygwin. Así que lo hice. Pero ... sip está en C:\Python31\sip.¿Cómo navegar a un directorio en C: con Cygwin?

¿Puedo ejecutar esto desde el comando Cygwin? Si es así, ¿cómo lo haría?

¿O puedo ejecutar esto desde el símbolo del sistema normal de Windows? Si es así, ¿cómo podría hacerlo?

Respuesta

558

Uso:

cd /cygdrive/c 
+56

Es posible también utilizar 'cd c: /' – ihaveitnow

+0

y asegúrese de que no haya espacio en y después de '/ cygdrive/c' – DeltaCap

41

Usted ya aceptó una respuesta, pero sólo pensé que me gustaría mencionar que el siguiente también funciona en Cygwin:

cd "C:\Foo" 

creo que el método cd /cygdrive/c es mejor, pero a veces es útil saber que puedes hacer esto también.

167

Agregaré algo que me ayude mucho con cygwin. Siempre que la creación de un nuevo sistema, que siempre hago esta

ln -s /cygdrive/c /c 

Esto crea una symbolic link a /cygdrive/c con un nuevo archivo llamado /c (en el directorio principal)

entonces usted puede hacer esto en su concha

cd /c/Foo 
cd /c/ 

Muy útil.

+0

Tenga en cuenta que esto le impide tener archivos/directorios llamados' c' con la capacidad de hacer referencia a ellos normalmente. – Raj

+0

Recientemente instalé MSYS2 y este fue el comportamiento predeterminado, con '/ cygdrive' en realidad no funciona ... – joejoe31b

118

cd c: se apoya ahora en cygwin

+0

Válido para' cd e: 'y el prompt será'/cygdrive/e' – Kiquenet

2

En una nota relacionada, también te puede gustar:

shopt -s autocd 

Esto le permite a cd un directorio con solo escribir en el directorio

[[email protected] ~]$ /cygdrive/d 
cd /cygdrive/d 
[[email protected] /cygdrive/d]$ 

Para hacer que sea persistente, debe agregarlo a su ~/.bashrc

1

puede probar esta

/cygdrive/c/directoryname 
4

Como es probable que desee hacer esto a menudo, añadir alias en el archivo .bashrc, como:

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

a continuación, puedes escribir en la línea de comandos:

cdc 
2

Definir una variable en.bashrc:

export C=/cygdrive/c 

continuación, puede utilizar

cd $C/ 

y la ficha completa automáticamente correctamente (por favor incluya el/al final)

1

Usted sólo puede usar cd C:/Users/../..

0

Cree un archivo llamado "overrideBashCdForWindowsPaths" en su carpeta HOME. Pegar las siguientes líneas en el archivo y guardarlo:

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

A continuación, escriba el siguiente comando en un terminal, mientras se encuentra en la carpeta INICIO:

echo ". overrideBashCdForWindowsPaths" >> .bashrc 

Cierre el terminal y abrir una nueva uno. Ahora puede cambiar fácilmente en esa carpeta de Windows simplemente escribiendo

cd C:\Python31\sip 

El script lee el último comando, extrae el camino y lo pasa a la herramienta de ruta de conversión de Cygwin. Al nombrar la función "cd", ordenamos "anular" el "cd" incorporado de Bash y delegamos la llamada real en la última línea.

0

Algo que vale la pena mencionar aquí es que cygpath de Cygwin, aún no maneja correctamente las rutas espaciadas de Windows, especialmente en los scripts Bash que se ejecutan bajo Cygwin. El truco consiste en comprender cómo Cygwin interpreta las comillas en los scripts Bash.

A continuación se hace no trabajo:

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

Pero esto funciona:

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

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

Por lo que yo sé, no existe actualmente ninguna solución conocida usando cygpath, que puede manejar adecuadamente espacios en el contexto de scripts de bash, pero puede usar comillas en sus scripts.

0

El que más me gusta es: entonces cd C:

Tener Linux como la sensación de hacer:

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

y utilizar esto como: ~/folder/..