ホームディレクトリを再定義することは可能ですか? 例 /ext1/usernameへ /home/usernameの代わりに 、つまり~を展開します 別のディレクトリに移動します(ユーザーのホームファイルが配置されている実際のホームディレクトリを変更するのではありません)。
(この質問は、そうするのは悪い習慣のように思われるため、ほとんどが学術的なものです。cshを使用することについても選択の余地はありません。 、トップ10を読んだにもかかわらず。)
承認された回答:
チルダ~ シェルによって解釈されます。シェルは~を解釈します $HOMEの短縮形として 。
(echo ~; HOME=foo; echo ~)を試してください 。 $HOMEを設定すると、最初に実際のホームディレクトリが出力され、その後「foo」が出力されます。 それに。
$HOMEのデフォルト値 あなたのシステム構成から来ます。 getent passwdを使用する すべての既知のユーザーとそのホームディレクトリを一覧表示します。システム構成によっては、これらのエントリは/etc/passwdから取得される場合があります。 または任意のリモートディレクトリサービス。
ホームディレクトリを一時的に再定義するだけの場合は、別の$HOMEを設定するだけです。 。
恒久的に変更したい場合は、passwdエントリを変更する必要があります。 /etc/passwdを手動で編集する 。