Ответ 1
Использование:
cd /cygdrive/c
Я пытаюсь установить PyQt4, чтобы я мог общаться с ним. В руководстве по установке сказано, что мне нужно установить Sip. Последним шагом для установки Sip является использование команды make install
. У Windows этого нет, поэтому я просмотрел его и все, что я видел, сказал, чтобы установить Cygwin. Так я и сделал. Но... sip находится в C:\Python31\sip
.
Можно ли запустить это из команды Cygwin? Если да, то как мне это сделать?
Или я могу запустить это из обычной командной строки Windows? Если да, то как я могу это сделать?
Использование:
cd /cygdrive/c
Я добавлю кое-что, что поможет мне многое с cygwin. Всякий раз, когда вы настраиваете новую систему, я всегда делаю это
ln -s /cygdrive/c /c
Это создает символическую ссылку в /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
Это позволяет вам записывать dir, просто введя в каталог
[[email protected] ~]$ /cygdrive/d
cd /cygdrive/d
[[email protected] /cygdrive/d]$
Чтобы сделать постоянным, вы должны добавить его в свой ~/.bashrc
Определите переменную в .bashrc:
export C=/cygdrive/c
то вы можете использовать
cd $C/
а вкладка автоматически заполняется (пожалуйста, укажите/в конце)
вы можете попробовать это
/cygdrive/c/directoryname
Вы можете просто использовать cd C:/Users/../..
Создайте файл с именем "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
script считывает последнюю команду, извлекает путь и передает его в инструмент преобразования пути Cygwin. Назвав функцию "cd", мы сортируем "переопределить" Bash builtin "cd" и делегируем фактический вызов ему в последней строке.
Что-то, что стоит упомянуть здесь, это то, что 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, но вы можете использовать кавычки в своих сценариях.
Мне нравится: cd C:
Чтобы linux понравился, выполните:
ln -s /cygdrive/c/folder ~/folder
и используйте это как: ~/folder/..