我在 Windows 环境中工作,但更喜欢使用 cygwin 中的 bash 作为我的 shell。要 cd 到 Windows 窗体中给出的较长路径,我输入:
cd $(cygpath -u 'Z:\Some\long\windows\path')
..从剪贴板粘贴窗口路径。由于我比较懒,所以我尝试创建一条快捷方式,如下所示:
#!/usr/bin/env bash
if [ -z "$1" ]; then
exit 0
else
TGT=$(cygpath -u $1)
cd $TGT
fi
exit 0
..然后意识到 cd 发生在脚本运行的 shell 中,而不是我调用脚本的 shell 中,因此没有达到预期的效果。我该如何实现它?
答案1
Plaincd 'Z:\Some\long\windows\path'
实际上应该可以正常工作。不过,您可能希望启用该nodosfilewarning
选项。
答案2
您可以将其设置为别名:
alias cd='cd $(cygpath -u "$1")'
将其粘贴到您的.bashrc
文件中或您设置别名的任何其他地方,然后您就成功了。
否则,您需要将包含自定义脚本路径的目录放在路径中比包含实际 cd 命令的目录更靠前的位置(我认为 cygwin 在 中设置了路径.bash_profile
);这可能不起作用,因为 cd 是 shell 内置命令。