如何改变 ~ 的值

如何改变 ~ 的值

默认情况下~被赋予值/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

摘自这个 U&L 问题。

答案2

尝试更改$HOME变量,因为波浪号 ( ~) 是 的简写$HOME,或者更改用户的主目录,/etc/passwd但不建议这样做。

为什么你不尝试制作和别名cd /home/username/filename这样:

alias documents='cd ~/Documents'

现在当你输入时documents它将改变为/home/user/Documents

更多信息man alias

为了使该别名永久有效,检查这个问题

相关内容