默认情况下~
被赋予值/home/username/
即如果我使用该命令,cd ~
它会转到目录/home/username/
如何将其值更改为其他文件(例如 /home/username/filename)?
我确实知道这可能很危险,但我正在进行 CTF,所以没问题。
答案1
波浪符号 (~) 被你的 shell 解释为 的缩写形式
$HOME
。尝试以下命令:
echo ~ HOME=foo echo ~
这应该首先打印您的真实主目录,然后打印“foo”,因为您将 $HOME` 设置为该目录。
的默认值
$HOME
来自您的系统配置。用于getent passwd
列出所有已知用户及其主目录。根据您的系统配置,这些条目可能来自/etc/passwd
或任何远程目录服务。如果您只想临时重新定义您的主目录,只需设置另一个
$HOME
。如果您想要永久更改它,您必须更改密码条目,例如通过手动编辑
/etc/passwd
。