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