Как перейти к каталогу в C: с Cygwin?
Я пытаюсь установить в составе PyQt4 так что я могу с ним возиться. В руководстве по установке сказано, что я должен установить Sip. Последний шаг к установка Sip использовать . У Windows этого нет, поэтому я посмотрел его и все, что я видел, сказал, чтобы установить Cygwin. Так я и сделал. Но...СИП в C:Python31sip
.
могу ли я запустить это из команды Cygwin? Если да, то как я это сделаю?
или я могу запустить это из нормального командная строка windows? Если да, то как я это сделаю?
13 ответов
Я добавлю кое-что, что очень помогает мне с cygwin. Всякий раз, когда я настраиваю новую систему, я всегда делаю это
ln -s /cygdrive/c /c
это создает символическую ссылку to /cygdrive/c
С Новым файлом под названием /c
(в домашнем каталоге)
затем вы можете сделать это в командной строке
cd /c/Foo
cd /c/
очень удобно.
вы уже приняли ответ, но я просто подумал, что упомяну, что следующее также работает в 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 правильно (Пожалуйста, включите / в конце)
создайте файл с именем "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/..