有没有办法别名命令cd,以便它保护参数?

当我跑

cd My folder

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

bash: cd: My: No such file or directory

但这很好用

cd "My folder"

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

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

cd () { cd "$*" ; }

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

 cd () { builtin cd "$*"; } 

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