为什么我的 .bash_history 包含重复的段?

为什么我的 .bash_history 包含重复的段?

由于我将 bash 历史记录置于源代码控制之下,我注意到有时历史记录的相当大的部分最终会重复,有时是在原始执行后数小时或数天。我使用 Debian 7.7 并具有以下配置:

shopt -s histappend

export HISTCONTROL=ignoreboth:erasedups
export HISTSIZE=1000000
export HISTFILESIZE=1000000

我怀疑多个终端之间存在一些交互,histappend, 和erasedups。我自己回答这个问题,但如果有人不同意或有更多细节,我想要其他答案!

编辑:我相信这是不是重复的——有很多问题询问如何忽略重复的条目;我问的是如何消除错误重复的历史片段周围的错误行为。 (整个块重复说我实际上只执行了一次。)

答案1

我已经尝试过删除erasedups,这似乎可以解决问题。我的猜测是,当删除重复项时,历史记录的本地副本与要附加到历史记录文件的项目计数不同步,因此在附加过程中从历史记录中提取了太多内容。

答案2

我最好的选择是自从你设定ignoreboth 新的重复的内容会被忽略;旧的副本保留在历史记录中。尝试使用

HISTCONTROL=ignorespace:erasedups

相关内容