~TabTabbashコマンドプロンプトを押すと、予期しない一連の完了が表示されました。
最初は、/Users
ディレクトリ内のすべての人々のように見えました。
それから、「ホーム」ディレクトリを持つ人々/etc/password
、またはおそらく存在する人々の逆ルックアップを行っていると思いました/var/empty
-これはほぼ正しいようです。
私が興味を持っているのは、実際に何が起こっているのか、なぜこれが機能するのかということです。
~TabTabbashコマンドプロンプトを押すと、予期しない一連の完了が表示されました。
最初は、/Users
ディレクトリ内のすべての人々のように見えました。
それから、「ホーム」ディレクトリを持つ人々/etc/password
、またはおそらく存在する人々の逆ルックアップを行っていると思いました/var/empty
-これはほぼ正しいようです。
私が興味を持っているのは、実際に何が起こっているのか、なぜこれが機能するのかということです。
回答:
チェックするのに便利なOSXシステムはありませんが、すべての* nixesで、~foo
userのホームディレクトリの省略形ですfoo
。たとえば、このコマンドはユーザーのディレクトリに移動します$HOME
(cd ~
単独でホームディレクトリに移動します)。
cd ~terdon
だから、~
およびTabすべての可能なユーザ名に展開されます。リストは、のユーザーのリストと同じである必要があります/etc/passwd
。
Debianでこれを試してみると、まさにそれが起こることを確認できます。
/home
は無関係であり、新しいユーザー名がリストされることはありません。また、すべてのユーザーの$ HOMEが/home
(または/Users
)にあるわけではないことに注意してください。