如何改變值~

如何改變值~

預設情況下~給出的值/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.

摘自這個 U&L 問題。

答案2

嘗試更改$HOME變量,因為波形符 ( ~) 是 的縮寫形式$HOME,或更改使用者的主目錄,/etc/passwd但不建議這樣做。

為什麼你不嘗試去創作和別名cd /home/username/filename這樣:

alias documents='cd ~/Documents'

現在,當您輸入時,documents它將更改為/home/user/Documents

更多資訊在man alias

為了使該別名永久存在,檢查這個問題

相關內容