为什么有人不在 bash 中设置“histappend”?

为什么有人不在 bash 中设置“histappend”?

得知这是什么后shopt -s histappend 方法,这似乎是一个非常合理的设置,令我惊讶的是它不是默认设置。为什么有人想要在每次 shell 退出时擦除他们的历史记录?

答案1

好吧,当histappend未设置时,这并不意味着每次 shell 退出时都会擦除历史记录。如果没有histappendbash,则在启动时将 histfile 读取到内存中 - 在操作期间添加新条目 - 并且在 shell 退出时,最后的 HISTSIZE 行将写入历史文件而不附加,即替换以前的内容。

例如,如果 histfile 包含 400 个条目,则在 bash 运行时期间添加 10 个新条目 - histsize 设置为 500,则新的 histfile 包含 410 个条目。

仅当您并行使用更多 bash 实例时,此行为才会出现问题。在这种情况下,历史文件仅包含最后退出的 shell 的内容。

与此无关:出于隐私原因,有些人希望在 shell 退出时擦除其历史记录。

答案2

我想是为了历史兼容性。该histappend选项直到 bash 2.0 才存在。

相关内容