有没有办法给命令 cd 取别名以保护参数?

Str*_*sky 2 bash alias directory

当我跑

cd My folder

有一个错误,因为我没有保护字符串。

bash: cd: My: No such file or directory

但这很好用

cd "My folder"

有没有办法重新定义cd为别名或函数,以便它自动将以下所有参数保护为一个字符串?

这种方法不起作用,因为我认为它不会:

cd () { cd "$*" ; }

Gil*_*il' 10

您可以这样做,但前提是您的目录名称不包含多个连续空格,并且仅当它们不包含空格以外的 shell 特殊字符时。

cd () { builtin cd "$*"; }
Run Code Online (Sandbox Code Playgroud)

在实践中,使用完成:键入cd My然后按Tab。Bash 会在特殊字符前插入反斜杠。