¿Cómo navegar a un directorio en C: \ con Cygwin?

371

Estoy tratando de instalar PyQt4 para poder jugar con él. La guía de instalación decía que tenía que instalar Sip . El último paso para instalar Sip es usar el make installcomando. Windows no tiene eso, así que lo busqué y todo lo que vi me dijo que instalara Cygwin. Así que lo hice. Pero ... el sorbo está adentro C:\Python31\sip.

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

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

Andrés
fuente

Respuestas:

721

Utilizar:

cd /cygdrive/c
Otávio Décio
fuente
90
También puede usarcd c:/
ihaveitnow
y asegúrese de que no haya espacio en y después/cygdrive/c
DeltaCap019
196

Agregaré algo que me ayude mucho con cygwin. Cada vez que configuro un nuevo sistema, siempre hago esto

ln -s /cygdrive/c /c

Esto crea un enlace simbólico a /cygdrive/cun nuevo archivo llamado /c(en el directorio principal)

Entonces puedes hacer esto en tu caparazón

cd /c/Foo
cd /c/

Muy útil.

karoberts
fuente
1
Tenga en cuenta que esto le impide tener nombres de archivos / directorios ccon la capacidad de hacer referencia a ellos normalmente.
Raj
1
Recientemente he instalado MSYS2 y este era el comportamiento por defecto, con /cygdriveen-hecho de no trabajar ...
joeeey
136

cd c: ahora es compatible con cygwin

netawater
fuente
Válido cd e:y pronto será/cygdrive/e
Kiquenet
49

Ya aceptó una respuesta, pero solo pensé en mencionar que lo siguiente también funciona en Cygwin:

cd "C:\Foo"

Creo que el cd /cygdrive/cmétodo es mejor, pero a veces es útil saber que también puedes hacerlo.

Mark Byers
fuente
7

Puedes usar

cd C:/Users/../..
Praveen Kishor
fuente
6

Como probablemente querrá hacer esto a menudo, agregue alias en su archivo .bashrc, como:

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

Luego puede escribir en la línea de comando:

cdc
Ellis
fuente
3

Defina una variable en .bashrc:

export C=/cygdrive/c

entonces puedes usar

cd $C/

y la pestaña se completa automáticamente (incluya el / al final)

Paco Zárate
fuente
2

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

shopt -s autocd

Esto le permite crear un directorio con solo escribir el directorio

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

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

Benjamin Goodacre
fuente
1

puedes probar esto

/cygdrive/c/directoryname
tionne jones
fuente
1

Cree un archivo llamado "overrideBashCdForWindowsPaths" en su carpeta HOME. Pegue las siguientes líneas en ese archivo y guárdelo:

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

Luego, escriba el siguiente comando en una terminal, mientras está en su carpeta INICIO:

echo ". overrideBashCdForWindowsPaths" >> .bashrc

Cierre su terminal y abra una nueva. Ahora puede cambiar fácilmente a esa carpeta de Windows simplemente escribiendo

cd C:\Python31\sip

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

KoenigGunther
fuente
Gracias @ KoenigGunther, ¡funciona! Pero un poco lento para cambiar de directorio. ¿Hay alguna manera de hacerlo más rápido al igual que usar una cita? por ejemplocd "C:\Python31\sip"
user11392987
1

El que me gusta es: cd C:

Para tener linux like feel entonces haz:

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

y usa esto como: ~/folder/..

Tribu John
fuente
0

Algo que vale la pena mencionar aquí es que Cygwin cygpathtodavía no maneja correctamente las rutas espaciadas de Windows, especialmente en los scripts de Bash que se ejecutan bajo Cygwin. El truco es comprender cómo Cygwininterpreta las citas en los scripts de Bash.

Lo siguiente no funciona:

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

Hasta donde yo sé, actualmente no se conoce una solución alternativa cygpathque pueda manejar espacios adecuadamente en el contexto de scripts de bash, pero puede usar comillas en sus scripts.

not2qubit
fuente
0

$cd C:\

> (Presione enter cuando vea esta línea)

Ahora estás en la unidad C.

wwei23
fuente
Esto >se debe a que la barra invertida al final de la línea escapó de la nueva línea ...
Gert van den Berg