命令cd行为[重复]

Modified on: Thu, 14 Jun 2018 06:56:23 +0800

从ubuntu 17.10开始,我的脚本的工作方式与以前不同:

cd a*

会将目录更改为以a开头的第一个目录。
现在,我收到了这个错误:

bash: cd: too many arguments

我猜它现在会检测多个参数,因为多个目录以a开头并引发错误。
我怎么能改变cd的行为?

作者:muru,Aurelien

最佳答案

我发现了同样的问题:Ubuntu 17.04 - bash:cd:太多的论点。显然这是一个错误。

建议的解决方法是创建一个基于内置cd命令的函数来覆盖它的行为:

cd(){ builtin cd "${@:1:1}"; }

将上面的行放在脚本的开头,然后像在Ubuntu 16.04中一样使用cd a*。如果要在子shell中使用它,请使用export -f cd

您也可以在~/.bashrc文件中定义和导出该函数:

cd(){ builtin cd "${@:1:1}"; }
export -f cd
作者:,pa4080

相关问答

添加新评论