~の値を変更する方法

~の値を変更する方法

デフォルトでは~次の値が与えられます/home/username/

つまり、コマンドを使用するとcd ~ディレクトリに移動します/home/username/

その値を /home/username/filename などの他のファイルに変更するにはどうすればよいでしょうか?

これは危険である可能性があるとわかっていますが、CTF に取り組んでいるので問題ありません。

答え1

チルダ (~) は、シェルによって の短縮形として解釈されます$HOME

次のコマンドを試してください。

echo ~
HOME=foo
echo ~

これは、最初に実際のホーム ディレクトリを印刷し、その後に $HOME` をそこに設定しているため、「foo」を印刷します。

のデフォルト値は$HOMEシステム構成から取得されます。 を使用すると、getent passwd既知のすべてのユーザーとそのホーム ディレクトリを一覧表示できます。 システム構成によっては、これらのエントリは または任意のリモート ディレクトリ サービスから取得される場合があります/etc/passwd

ホームディレクトリを一時的に再定義したいだけの場合は、別の を設定するだけです$HOME

永続的に変更したい場合は、手動で編集するなどして、passwd エントリを変更する必要があります/etc/passwd

この U&L の質問から抜粋。

答え2

$HOMEチルダ ( ~) は の短縮形なので$HOME、変数 を変更するか、 のユーザーのホームディレクトリを変更してみてください(/etc/passwdただし、これはお勧めできません)。

なぜあなたは作ろうとしないのですか?エイリアス例えばcd /home/username/filename次のようになります:

alias documents='cd ~/Documents'

入力すると次documentsのように変わります/home/user/Documents

詳細はman alias

その別名を永続的にするには、この質問をチェック

関連情報