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

如何使用Cygwin导航到C:\中的目录?,cygwin,Cygwin,我正在尝试安装,这样我就可以搞乱它了。安装指南说我必须安装。要执行的最后一步是使用makeinstall命令。Windows没有,所以我查了一下,看到的所有东西都说要安装Cygwin。所以我做了。但是…sip在C:\Python31\sip中 我可以从Cygwin命令运行这个吗?如果是的话,我会怎么做 或者我可以从普通的windows命令提示符运行此命令吗?如果是这样的话,我该怎么做呢?使用: cd /cygdrive/c 您已经接受了答案,但我想我应该提到以下内容在Cygwin中也适用: c

我正在尝试安装,这样我就可以搞乱它了。安装指南说我必须安装。要执行的最后一步是使用
makeinstall
命令。Windows没有,所以我查了一下,看到的所有东西都说要安装Cygwin。所以我做了。但是…sip在
C:\Python31\sip

我可以从Cygwin命令运行这个吗?如果是的话,我会怎么做

或者我可以从普通的windows命令提示符运行此命令吗?如果是这样的话,我该怎么做呢?

使用:

cd /cygdrive/c

您已经接受了答案,但我想我应该提到以下内容在Cygwin中也适用:

cd "C:\Foo"

我认为
cd/cygdrive/c
方法更好,但有时知道你也可以这样做是很有用的。

我将添加一些对cygwin有很大帮助的东西。每当建立新系统时,我总是这样做

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

然后你可以在你的壳里做这件事

cd /c/Foo
cd /c/

非常方便。

cygwin现在支持cd c:,

有关说明,您可能还喜欢:

shopt -s autocd
这允许您只需键入目录即可cd目录

[user@host ~]$ /cygdrive/d
cd /cygdrive/d
[user@host /cygdrive/d]$ 
要使其持久化,您应该将其添加到
~/.bashrc

您可以尝试以下方法

/cygdrive/c/directoryname

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

alias cdc='cd /cygdrive/c'
alias cdp='cd /cygdrive/p'
然后,您只需在命令行中键入:

cdc

在.bashrc中定义一个变量:

export C=/cygdrive/c
然后你可以用

cd $C/
并且选项卡自动正确完成(请在末尾包含/)

您只需使用

cd C:/Users/../..
在主文件夹中创建名为“OverrideBashCDForWindowsPath”的文件。将以下行粘贴到该文件中并保存:

#!/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”,我们可以“覆盖”Bash的内置“cd”,并在最后一行将实际调用委托给它。

这里值得一提的是,Cygwin的
cygpath
,仍然无法正确处理间隔的窗口路径,特别是在Cygwin下运行的Bash脚本中。诀窍是理解
Cygwin
如何解释Bash脚本中的引号

以下操作不起作用:

#/bin/bash
TBDIR=“/cygdrive/c/Program\Files\\(x86\)/MyDir/”
如果[-d“${TBDIR}”];然后
echo“在:${TBDIR}找到MyDir目录”
cd“$TBDIR”
其他的
echo“未找到MyDir程序目录!”
echo“错误的目录路径:${TBDIR}”
出口1
fi
但这确实有效:

#/bin/bash
#Cygwin ism:没有引用!
TBDIR=/cygdrive/c/Program\Files\\(x86\)/MyDir/
如果[-d“${TBDIR}”];然后
...

据我所知,目前还没有已知的解决方法使用
cygpath
,可以正确处理bash脚本上下文中的空格,但可以在脚本中使用引号。

我喜欢的方法是:
cd C:

要获得类似linux的感觉,请执行以下操作:

ln -s /cygdrive/c/folder ~/folder
然后像这样使用:
~/folder/。
$cdc:\

(看到此行时按enter键)


您现在在C驱动器中。

您也可以使用
cd C://
,并确保
/cygdrive/C
中和之后没有空间。请注意,这会阻止您将文件/目录命名为
C
,并能够正常引用它们。我最近安装了MSYS2,这是默认行为,由于
/cygdrive
实际上不起作用…对
cd e:
有效,提示将是
/cygdrive/e
谢谢@koenigunther,它起作用了!但更改目录的速度有点慢。有没有一种方法可以像使用quote一样让它更快?e、 g.
cd“C:\Python31\sip”
之所以使用
,是因为行尾的反斜杠转义了换行符。。。