tsh*_*ang 48 bash command-history
在了解这shopt -s histappend 意味着什么之后,这似乎是一个非常理智的设置,我很惊讶它不是默认设置。为什么有人想在每个 shell 退出时擦除他们的历史记录?
max*_*zig 46
好吧,whenhistappend未设置,这并不意味着在每个 shell 退出时都会擦除历史记录。没有histappendbash 在启动时将 histfile 读入内存 - 在操作期间添加新条目 - 在 shell 退出时,最后的 HISTSIZE 行被写入历史文件而不附加,即替换以前的内容。
例如,如果 histfile 包含 400 个条目,则在 bash 运行时添加 10 个新条目 - histsize 设置为 500,则新 histfile 包含 410 个条目。
仅当您并行使用更多 bash 实例时,此行为才会有问题。在这种情况下,历史文件只包含最后退出的 shell 的内容。
与此无关:由于隐私原因,有些人希望在 shell 退出时擦除他们的历史记录。
Gil*_*il' 11
我猜是为了历史兼容性。该histappend选项直到 bash 2.0 才存在。