![.bashrc 被覆盖但仍然有来源——如何恢复?](https://linux22.com/image/19954/.bashrc%20%E8%A2%AB%E8%A6%86%E7%9B%96%E4%BD%86%E4%BB%8D%E7%84%B6%E6%9C%89%E6%9D%A5%E6%BA%90%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E6%81%A2%E5%A4%8D%EF%BC%9F.png)
通常,当我找到想要别名的命令时,我会将其回显到我的 .bashrc 中,如下所示:
[up button pressed to last command, then line edited so that it reads]
$echo "command-i-just-did" >> ~/.bashrc
可能有更好的方法来做到这一点。但无论如何,刚才我使用单个 V 形符号覆盖了整个 .rc 文件。然而,由于 .bashrc 仍然是最新的,它仍然接受我的旧别名(当然是现在)。那么有没有办法恢复呢?
答案1
alias
不带参数输出当前定义的别名的定义。declare -f
输出当前定义的函数的定义。export -p
输出当前定义的变量的定义。
所有这些命令输出定义都可以重复使用,您可以将它们的输出直接重定向到新的~/.bashrc
.
所有列表都将包含许多在其他地方定义的元素,例如/etc/profile
和/etc/bash_completion
。因此,您必须手动清理该列表。
答案2
typeset -f > .bashrc
应该这样做,前提是你拥有的只是别名。