当它的path被作为一个命令input时,cd到一个目录(而不是“foo是一个目录”错误)

我讨厌什么时候bash给我“呃!” 那种错误:

 foo$ ./bar -bash: ./bar: is a directory 

我曾经喜欢AmigaOS shell,其中目录的“执行”仅仅意味着将其设置为当前目录:

 foo$ ./bar bar$ 

bash可能吗? (当然没有无限的别名)。

Bash 4.0有autocd选项。

从官方常见问题解答 :

有一个新的“autocd”选项,启用后,bash会尝试“cd”到一个目录名称,该目录名称将作为简单命令的第一个字提供。

另外,至less在2.0版本之前,请查看任何版本的man bash中的CDPATH环境variables。 它允许您通过在cd命令中指定的目录中search列出的目录来缩短cd命令。

不知道bash,但这是可能的在zsh中。

 # ~/.zshrc setopt autocd 

编辑 :你可能可以在bash中以相同的方式处理这个ubuntu捕捉命令没有find

  # bashrc function command_not_found_handle { if [ -d $1]; then cd $1 else echo command not found fi }