我在用着这在我的.bashrc
两年里,从来没有注意到任何问题......直到最近。
我注意到.bash_eternal_history
超过 40k 行的 ,在新登录时突然被截断,减少到几百行。
我尝试检查HISTSIZE
,HISTFILESIZE
但它仍然没有返回任何内容(我认为这意味着它没有任何限制)
我知道另一个邮政其中提到unset
ting 这些变量是首选,但在另一个一,情况似乎并不总是如此。
我找到了一个替代方案(尚未尝试过),例如这一。
我正在使用 Ubuntu 的 default .bashrc
, withHISTSIZE
和HISTFILESIZE
commented,因为它已经是默认值的一部分(这样它就不会干扰上面提到的代码片段)。
我查阅的其他相关帖子:
我还没有尝试上面提到的替代方案,所以我很好奇除了我在上述帖子中发现的原因之外是否还有其他原因导致这种情况发生。
答案1
从man bash
:
HISTFILESIZE
The maximum number of lines contained in the history file.
When this variable is assigned a value, the history file is
truncated, if necessary, to contain no more than that number of
lines by removing the oldest entries. The history file is also
truncated to this size after writing it when a shell exits. If
the value is 0, the history file is truncated to zero size.
Non-numeric values and numeric values less than zero inhibit
truncation. The shell sets the default value to the value of
HISTSIZE after reading any startup files.
HISTSIZE
The number of commands to remember in the command history (see
HISTORY below). If the value is 0, commands are not saved in
the history list. Numeric values less than zero result in ev‐
ery command being saved on the history list (there is no
limit). The shell sets the default value to 500 after reading
any startup files.
因此,如果两者均未设置,代码仍将默认为 500。