Как перейти к каталогу в C: с Cygwin?

Я пытаюсь установить в составе PyQt4 так что я могу с ним возиться. В руководстве по установке сказано, что я должен установить Sip. Последний шаг к установка Sip использовать . У Windows этого нет, поэтому я посмотрел его и все, что я видел, сказал, чтобы установить Cygwin. Так я и сделал. Но...СИП в C:Python31sip.

могу ли я запустить это из команды Cygwin? Если да, то как я это сделаю?

или я могу запустить это из нормального командная строка windows? Если да, то как я это сделаю?

13 ответов


использование:

cd /cygdrive/c

Я добавлю кое-что, что очень помогает мне с cygwin. Всякий раз, когда я настраиваю новую систему, я всегда делаю это

ln -s /cygdrive/c /c

это создает символическую ссылку to /cygdrive/c С Новым файлом под названием /c (в домашнем каталоге)

затем вы можете сделать это в командной строке

cd /c/Foo
cd /c/

очень удобно.


cd c: теперь поддерживается в cygwin


вы уже приняли ответ, но я просто подумал, что упомяну, что следующее также работает в Cygwin:

cd "C:\Foo"

Я думаю cd /cygdrive/c метод лучше, но иногда полезно знать, что Вы тоже можете это сделать.


поскольку вы, вероятно ,захотите делать это часто, добавьте псевдонимы в свой.файл bashrc, как:

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

затем вы можете просто ввести в командной строке:

cdc

в соответствующей заметке вам также может понравиться:

shopt -s autocd

Это позволяет вам cd a dir, просто набрав в dir

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

- это настойчивый, вы должны добавить его в свой ~/.bashrc


определите переменную in .bashrc следующее :

export C=/cygdrive/c

затем вы можете использовать

cd $C/

и вкладка autocompletes правильно (Пожалуйста, включите / в конце)


вы можете просто использовать

cd C:/Users/../..

вы можете попробовать это

/cygdrive/c/directoryname

создайте файл с именем "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")"
}

Далее введите следующую команду в терминале, находясь в домашней папке:

echo ". overrideBashCdForWindowsPaths" >> .bashrc

закройте терминал и откройте новый. Теперь вы можете легко перейти в эту папку Windows, просто набрав

cd C:\Python31\sip

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


что стоит упомянуть здесь, так это то, что Cygwin's 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, но вы можете использовать кавычки в своих сценариях.


тот, который мне нравится:cd C:

чтобы иметь linux, как чувствовать, то сделайте:

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

и использовать это как: ~/folder/..


$cd C:\

> (нажмите enter, когда увидите эту строку)

теперь вы находитесь в диск C.