如何使用Cygwin导航到C:\中的目录?

时间:2009-12-05 02:30:22

标签: cygwin

我正在尝试安装PyQt4,所以我可以搞砸它。安装指南说我必须安装Sipinstalling Sip的最后一步是使用make install命令。 Windows没有,所以我查了一下,我看到的所有内容都说要安装Cygwin。所以我做了。但是...... sip在C:\Python31\sip

我可以从Cygwin命令运行吗?如果是这样,我该怎么做?

或者我可以从正常的Windows命令提示符运行吗?如果是这样,我该怎么做呢?

13 个答案:

答案 0 :(得分:652)

使用:

cd /cygdrive/c

答案 1 :(得分:186)

我会添加一些可以帮助我解决很多问题的东西。每当建立一个新系统时,我总是这样做

ln -s /cygdrive/c /c

使用名为/cygdrive/c的新文件(在主目录中)创建symbolic link/c

然后你可以在shell中执行此操作

cd /c/Foo
cd /c/

非常方便。

答案 2 :(得分:131)

现在cygwin

支持

cd c:

答案 3 :(得分:45)

你已经接受了答案,但我只是想提到以下内容也适用于Cygwin:

cd "C:\Foo"

我认为cd /cygdrive/c方法更好,但有时知道你也可以做到这一点。

答案 4 :(得分:6)

由于您可能希望经常这样做,请在.bashrc文件中添加别名,例如:

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

然后您只需在命令行上输入:

cdc

答案 5 :(得分:3)

你可以使用

cd C:/Users/../..

答案 6 :(得分:2)

在相关的说明中,您可能也喜欢:

shopt -s autocd

这允许您通过输入目录

来播放目录
[user@host ~]$ /cygdrive/d
cd /cygdrive/d
[user@host /cygdrive/d]$ 

要坚持不懈,您应该将其添加到~/.bashrc

答案 7 :(得分:2)

在.bashrc中定义一个变量:

export C=/cygdrive/c

然后你可以使用

cd $C/

并且标签正确自动填充(请在末尾包含/)

答案 8 :(得分:1)

你可以试试这个

/cygdrive/c/directoryname

答案 9 :(得分:0)

在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”,并在最后一行委托实际调用。

答案 10 :(得分:0)

这里值得一提的是Cygwin的cygpath仍然没有正确处理间隔的Windows路径,尤其是在Cygwin下运行的Bash脚本中。诀窍是了解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脚本上下文中的空格,但您可以在脚本中使用引号。

答案 11 :(得分:0)

我喜欢的是:cd C:

让Linux感觉如此:

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

并使用它:~/folder/..

答案 12 :(得分:0)

$cd C:\

>(当您看到此行时按Enter键)

你现在在C盘中。