CDPATH 中带有空格的 bash 目录名称

CDPATH 中带有空格的 bash 目录名称

我正在尝试设置快捷方式,这样我就不必经常输入很长的目录名。在 中~/.bash_profile,我正在执行类似以下操作:

export CDPATH=".:~:/This/Is/A/Really/Long/Path/That/Ends/With/My Name"

尝试设置此变量时,如何转义/保留目录名中的空格?

我尝试了各种解决方案(使用单引号与双引号、使用反斜杠转义(我甚至尝试过'My\\\ Name')、根本不使用引号以及这些选项的组合)。

谢谢。

答案1

export CDPATH=".:~:/This/Is/A/Really/Long/Path/That/Ends/With/My Name"

应该没事

我试过了

cd /tmp/
mkdir "aaa bbb"
mkdir "aaa bbb/a" "aaa bbb/b"
export CDPATH="/tmp/aaa bbb"

cd a

很好用

此外,如果你想更快地更改目录,你可以创建一个别名

alias longpath="cd '/This/Is/A/Really/Long/Path/That/Ends/With/My Name'"

但它不能解决复制到该目录的问题

cp longpath

不起作用。

也许它不能正常工作,你应该安装并启用 bash-completion — 它定义了一个 _cd 函数并将其设置为 cd 命令的完成器,它会覆盖默认完成并包含 $CDPATH。

相关内容