Answers:
你可以用
cd C:/Users/../..
在.bashrc中定义一个变量:
export C=/cygdrive/c
那么你可以使用
cd $C/
并且该标签会正确自动完成(请在末尾添加/)
在相关说明中,您可能还喜欢:
shopt -s autocd
这使您可以通过仅在目录中键入cd目录
[user@host ~]$ /cygdrive/d
cd /cygdrive/d
[user@host /cygdrive/d]$
要使之持久,应将其添加到 ~/.bashrc
在您的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”并在最后一行委托实际的调用。
cd "C:\Python31\sip"
这里值得一提的是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脚本上下文中的空格,但是您可以在脚本中使用引号。
cd c:/