通常,当我找到想要别名的命令时,我会将其回显到我的 .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
应该这样做,前提是你拥有的只是别名。