bash历史记录文件有最大大小吗?


Answers:


15

无需指定数字,您可以执行

unset HISTSIZE 
unset HISTFILESIZE
shopt -s histappend

在这种情况下,只有磁盘大小(如果您的OS或FS有一个,则为“最大文件限制”)为限制。

但是,请注意,这最终将逐渐减慢bash的速度。请参阅此BashFAQ文档debian-administration文章(原始链接已终止,请照照镜子:archive.isarchive.org),以获取更好的技术扩展。


您可能还需要增加history-size您的inputrc
克里斯·

警告:如前所述[ unix.stackexchange.com/a/76129/78713](如下所示),这可能会导致Bash继承默认值,并且如果您的默认值.bash_history大于默认值,则将其截断。
克里斯·波维尔克

8

您可以使用logrotate保留旧条目。例如,它允许您设置将触发归档的大小限制。它通常从日常cronjob运行,但是您也可以从.bash_logout脚本中调用它。


对于我来说,这似乎是最可持续的方法,因为从长远来看,删除大小限制将对性能产生影响。虽然我不感到惊讶,但我很快就会到达门槛,但恐怕要花一些时间才能开始注意到这种影响。顺便说一句,考虑添加您设置的配置,以及要添加的optionnal bash注销命令。
Balmipour

链接已断开。也许进行编辑以指向具有相同预期信息的另一个链接?
Beco博士

7

@Philomath,取消设置这些环境变量对我根本不起作用!对我来说,这导致bash使用其内置的默认值(似乎)将.bash_history截断为大约9KiB。

.bashrc中的以下内容对我有用:

export HISTSIZE=
export HISTFILESIZE=
shopt -s histappend
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.