首页 文章

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

提问于
浏览
327

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

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

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

13 回答

  • 0

    使用:

    cd /cygdrive/c
    
  • 2

    我会添加一些东西,帮助我与cygwin很多 . 每当 Build 一个新系统时,我总是这样做

    ln -s /cygdrive/c /c
    

    这将创建symbolic link/cygdrive/c ,其中包含一个名为 /c 的新文件(在主目录中)

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

    cd /c/Foo
    cd /c/
    

    非常便利 .

  • 2

    现在cygwin支持 cd c:

  • 177

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

    cd "C:\Foo"
    

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

  • 124

    因为您可能经常想要这样做,所以在.bashrc文件中添加别名,例如:

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

    然后你可以在命令行上输入:

    cdc
    
  • 5

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

    shopt -s autocd
    

    这允许你通过输入目录来cd dir

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

    要坚持你应该把它添加到你的 ~/.bashrc

  • 2

    在.bashrc中定义一个变量:

    export C=/cygdrive/c
    

    然后你可以使用

    cd $C/
    

    和标签自动完成正确(请包括/在结尾)

  • 1

    你可以使用

    cd C:/Users/../..
    
  • 622

    你可以试试这个

    /cygdrive/c/directoryname
    
  • 43

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

  • 0

    值得一提的是,Cygwin的 cygpath 仍然没有正确处理间隔开的Windows路径,尤其是在Cygwin下运行的Bash脚本中 . 诀窍是了解 Cygwin 如何解释Bash脚本中的引号 .

    以下是 not 工作:

    #!/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

    我喜欢的是: cd C:

    要想让linux感觉如此:

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

    并使用它像: ~/folder/..

  • 0

    $cd C:\

    > (看到此行时按Enter键)

    你现在在C盘 .

相关问题