Як перейти до каталогу в C: \ за допомогою Cygwin?


370

Я намагаюся встановити PyQt4, щоб я міг з цим возитися. Інструкція з установки сказала, що мені потрібно встановити Sip . Останній крок до встановлення Sip - це використання make installкоманди. У Windows цього немає, тому я подивився, і все, що я побачив, сказав встановити Cygwin. Так я і зробив. Але ... ковток в C:\Python31\sip.

Чи можу я запустити це з команди Cygwin? Якщо так, то як би я це зробив?

Або я можу запустити це з звичайного командного рядка Windows? Якщо так, то як би я пішов про це?

Відповіді:


719

Використання:

cd /cygdrive/c

90
Ви також можете скористатисяcd c:/
ihaveitnow

і переконайтесь, що в ньому немає місця і після нього/cygdrive/c
DeltaCap019

195

Я додам щось, що мені дуже допомагає від cygwin. Щоразу, коли налаштовую нову систему, я завжди роблю це

ln -s /cygdrive/c /c

Це створює символічне посилання на /cygdrive/cновий файл з назвою /c(у домашній каталог)

Тоді ви можете зробити це у своїй оболонці

cd /c/Foo
cd /c/

Дуже зручно.


1
Зауважте, що це заважає вам мати імена файлів / каталогів cіз можливістю нормального посилання на них.
Радж

1
Нещодавно я встановив MSYS2, і це було поведінкою за замовчуванням, /cygdriveфактично не працює ...
joeeey


49

Ви вже прийняли відповідь, але я просто подумав зазначити, що в Cygwin працює і таке:

cd "C:\Foo"

Я думаю, що cd /cygdrive/cметод є кращим, але іноді корисно знати, що і ти можеш це зробити.



6

Оскільки ви, мабуть, хочете робити це часто, додайте псевдоніми у свій .bashrc файл, наприклад:

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

Потім ви можете просто набрати в командному рядку:

cdc

3

Визначте змінну в .bashrc:

export C=/cygdrive/c

тоді можна використовувати

cd $C/

і вкладка автоматично заповнюється правильно (будь ласка, додайте / в кінці)


2

У відповідній записці вам також можуть сподобатися:

shopt -s autocd

Це дозволяє створити компакт-диск, просто ввівши в dir

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

Щоб зробити стійким, слід додати його до свого ~/.bashrc



1

Створіть у своїй папці HOME файл з назвою "overrideBashCdForWindowsPaths". Вставте наступні рядки у цей файл і збережіть його:

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

Далі введіть таку команду в термінал, поки ви знаходитесь у своїй папці HOME:

echo ". overrideBashCdForWindowsPaths" >> .bashrc

Закрийте свій термінал і відкрийте новий. Тепер ви можете легко перейти в цю папку Windows, просто набравши текст

cd C:\Python31\sip

Сценарій читає останню команду, витягує шлях і передає його інструменту перетворення шляху Cygwin. Називаючи функцію "cd", ми на зразок "переосмислюємо" вбудований Bash в "cd" і делегуємо йому фактичний виклик в останньому рядку.


Дякую @KoenigGunther, це працює! Але трохи повільно, хоча для зміни каталогу. Чи є спосіб зробити це швидше, як і використання цитати? напр.cd "C:\Python31\sip"
user11392987

1

Мені подобається такий: cd C:

Щоб мати Linux, як відчувати, тоді:

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

і використовувати це так: ~/folder/..


0

Тут варто згадати те, що Cygwin cygpathдосі не обробляє належним чином розміщені шляхи до Windows, особливо в сценаріях Bash, що працюють під Cygwin. Хитрість полягає в тому, щоб зрозуміти, як Cygwinінтерпретує цитати в сценаріях Bash.

Наступне не працює:

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

Але це працює:

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

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

Наскільки я знаю, в даний час немає відомого рішення щодо використання cygpath, яке може правильно обробляти пробіли в контексті сценаріїв bash, але ви можете використовувати лапки у своїх сценаріях.


0

$cd C:\

> (Натисніть клавішу Enter, побачивши цей рядок)

Зараз ви перебуваєте на C-диску.


Це >тому, що нахил в кінці рядка уникнув нової лінії ...
Герт ван ден Берг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.