今天我不小心输入了ls ~bin
我想输入的~bak
——那是我的垃圾备份文件夹,但~b<tab>
欺骗了我。
相反,我得到了这个:
$ ls ~bin
core_perl fogcoord lftp pcmanfm snmpvacm
site_perl fold lftpget
... many miles of output ...
谁能解释一下这里到底发生了什么?cd
例如,也适用于。
pwd 中没有这样的文件夹(或符号链接) - 它是真正的 /bin。我也尝试过ls ~etc
,但没有成功。
这是我的ls:
$ alias ls
alias ls='ls --color=auto --group-directories-first -h'
答案1
有一个bin
用户有 home /bin
:
$ getent passwd bin
bin:x:1:1:bin:/bin:/bin/false
现在~bin
指的是 bin 用户的主目录,它/bin
包含所有长长的命令。
同样的方法~etc
不行,因为没有etc用户。