bash 4.2 autocd 命令默认覆盖目录

bash 4.2 autocd 命令默认覆盖目录

刚刚在 OSX 上从 tcsh 切换到 bash 4.2,autocd 允许我执行此操作。但默认情况下,如果您输入的目录名称恰好也是我路径中可执行文件的名称,则不会调用 autocd 并运行命令。

有没有办法改变这种行为,以便它假定我想要安全地并进入指定的目录?

答案1

您可能无法做到这一点,这指出了有关为什么诸如此类的功能autocd永远无法成为标准的根本问题:它引入了歧义。如果您切换了行为:您将如何启动与当前可用子目录同名的程序?它变得不确定,在我看来,这是 UI 可能变成的最糟糕的事情(对于非交互式 shell 来说甚至更糟,但只需autocd为交互式 shell 设置即可避免这种情况)。

当我说“你可能不能”时,我的意思是我查看了部分shopt内容man bash,没有找到任何这样的修饰符。当然可以通过修改 Bash 的源代码来修复它,但我猜你的问题涉及一个可用的设置来为你修复这个问题。

相关内容