預設情況下~
給出的值/home/username/
即如果我使用該命令,cd ~
它將進入該目錄/home/username/
如何將其值變更為其他文件,例如/home/username/filename?
我確實知道這可能很危險,但我正在研究 CTF,所以沒關係。
答案1
波形符號 (~) 由您的 shell 解釋為 的縮寫形式
$HOME
。嘗試以下命令:
echo ~ HOME=foo echo ~
這應該首先列印您的真實主目錄,然後列印“foo”,因為您將 $HOME` 設定為該目錄。
預設值
$HOME
來自您的系統配置。用於getent passwd
列出所有已知使用者及其主目錄。根據您的系統配置,這些條目可能來自/etc/passwd
任何遠端目錄服務。如果您只想暫時重新定義主目錄,只需設定另一個
$HOME
.如果您想要永久更改它,則必須更改 passwd 條目,例如透過手動編輯
/etc/passwd
.