Как перейти в каталог в C: \ с Cygwin? - PullRequest
340 голосов
/ 05 декабря 2009

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

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

Или я могу запустить это из обычной командной строки Windows? Если так, как бы я поступил об этом?

Ответы [ 13 ]

0 голосов
/ 07 октября 2017

Мне нравится: cd C:

Чтобы почувствовать Linux как, тогда сделайте:

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

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

0 голосов
/ 30 июня 2017

Здесь стоит упомянуть, что 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 голосов
/ 24 мая 2016

Создайте файл с именем «overrideBashCdForWindowsPaths» в вашей папке HOME. Вставьте следующие строки в этот файл и сохраните его:

#!/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» и делегируем фактический вызов в самой последней строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...