Bash 历史记录中没有重复的行

Bash 历史记录中没有重复的行

据推测,添加导出HISTCONTROL=ignoreboth即可.bashrc解决问题,但实际上我看到的是我的.bash_history文件中仍然存在重复的行。

你可以.bashrc在下面看到我的。

export HISTFILESIZE=100000
export HISTSIZE=100000 
export HISTIGNORE="ls*:rm*:cd*:CD*:ps*:exit*:reset*:clear*:synaptic*:mkdir*:cat*"
export HISTCONTROL=ignoreboth
shopt -s histappend
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

有人知道为什么我仍然收到重复的线条吗?

答案1

HISTCONTROL 仅影响新的直方图线。
我认为作者有一种编辑现有直方图文件的方法。

nl ~/.bash_history | sort -k 2 | uniq -f 1 | sort -n | cut -f 2 > temp_file
其次是
temp_file > ~/.bash_history

应保留行顺序,同时从现有历史文件中删除重复项。
如果您已打开时间戳,则可能会留下幽灵时间戳。
如果您遇到此问题,请发表评论,我会再次清理这些问题。

答案2

“erasedups” 应该可以解决问题,你source .bashrc改变之后呢?

您能echo $HISTCONTROL告诉我们输出结果吗?另外:请确保您确实想在 .bashrc 上执行此操作,而不是在 .bash_profile 中执行此操作...

基本上,我怀疑您的环境中根本没有 HISTCONTROL。

相关内容