这个 HOME 命令是什么?

这个 HOME 命令是什么?

我能够运行名为“HOME”的命令,该命令似乎相当于cd && echo "~".但我不知道它的定义在哪里:

$ pwd
/tmp
$ which HOME
HOME not found
$ type HOME
HOME not found
$ man HOME
No manual entry for HOME
$ HOME
~
$ pwd
/Users/tba

这是内置的 shell 吗?这看起来更像是打印我的主目录的完全限定路径的失败尝试。

我在 OS X Yosemite 上运行 ZSH(带有 Oh-My-Zsh)。

答案1

oh-my-zsh启用两件事,导致此行为:

  • 自动光盘:如果command无法执行,且command是目录名,则cd到该目录执行
  • CDABLE_VARS:如果命令的参数cd(或带有选项集的隐含 cd AUTO_CD)不是目录,并且不以斜杠开头,请尝试扩展表达式,就好像它前面有一个~

在您的情况下,当输入时HOMEAUTO_CDmake zshPerformed cd HOMECDABLE_VARSmade zshPerformedcd ~HOME~HOME扩展到您的主目录。

您可以使用zsh选项--xtrace调用来查看发生了什么:

$ zsh --xtrace
$ HOME
...
+zsh:1> cd /home/cuonglm
~
....

相关内容