~bin에 대한 이상한 bash 확장

~bin에 대한 이상한 bash 확장

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집에 사용자 가 있습니다 /bin.

$ getent passwd bin
bin:x:1:1:bin:/bin:/bin/false

이제 이는 모든 긴 명령이 포함된 ~binbin 사용자의 홈 디렉터리를 나타냅니다 ./bin

~etcetc 사용자가 없기 때문에 같은 방법은 작동하지 않습니다.

관련 정보