意外的 Bash 完成 ~ 在 OS X 上

Wal*_*ner 13 bash users autocomplete

我按下~TabTabbash 命令提示符并得到了一组意外的完成。

首先它看起来像/Users目录中的所有人,还有更多。

然后,我还以为是在做与“家”目录乡亲的反向查找/etc/password,或者是那样的的人/var/empty-这似乎是正确的。

我很好奇是什么真正回事,为什么这个作品它。

ter*_*don 21

我没有方便检查的 OSX 系统,但在所有 *nixes 上,它~foo是 user 主目录的简写foo。例如,此命令将移动到我的用户$HOMEcd ~单独移动到您的主目录):

cd ~terdon
Run Code Online (Sandbox Code Playgroud)

因此,~Tab将扩大到所有可能的用户名。该列表应与 中的用户列表相同/etc/passwd

我可以确认这正是我在 Debian 上尝试时发生的情况。