![在 OS X 上 Bash 意外完成 ~](https://linux22.com/image/65812/%E5%9C%A8%20OS%20X%20%E4%B8%8A%20Bash%20%E6%84%8F%E5%A4%96%E5%AE%8C%E6%88%90%20~.png)
我按下~TabTabbash 命令提示符并得到了一组意想不到的完成结果。
首先,它看起来像目录中的所有人员/Users
,甚至更多。
然后我认为它正在对具有“主”目录的人进行反向查找/etc/password
,或者可能是那些/var/empty
- 这似乎是正确的。
我好奇的是真的正在进行和为什么这就像它一样工作。
答案1
我没有方便检查的 OSX 系统,但在所有 *nixes 上,~foo
是 user 主目录的简写foo
。例如,此命令将移动到我的用户的$HOME
(cd ~
单独移动到您的主目录):
cd ~terdon
因此,~
和Tab将扩展到所有可能的用户名。该列表应与 中的用户列表相同/etc/passwd
。
我可以确认,当我在 Debian 上尝试时,确实会发生这种情况。
答案2
我认为它正在对 /etc/password 中具有“home”目录的人员进行反向查找。
在 OS X 上,会查询开放目录而不是 /etc/passwd。