即使未设置 HISTSIZE 和 HISTFILESIZE,Bash 历史记录也会被截断

即使未设置 HISTSIZE 和 HISTFILESIZE,Bash 历史记录也会被截断

我在用着在我的.bashrc两年里,从来没有注意到任何问题......直到最近。

我注意到.bash_eternal_history超过 40k 行的 ,在新登录时突然被截断,减少到几百行。

我尝试检查HISTSIZEHISTFILESIZE但它仍然没有返回任何内容(我认为这意味着它没有任何限制)

我知道另一个邮政其中提到unsetting 这些变量是首选,但在另一个,情况似乎并不总是如此。

我找到了一个替代方案(尚未尝试过),例如一。

我正在使用 Ubuntu 的 default .bashrc, withHISTSIZEHISTFILESIZEcommented,因为它已经是默认值的一部分(这样它就不会干扰上面提到的代码片段)。

我查阅的其他相关帖子:

我还没有尝试上面提到的替代方案,所以我很好奇除了我在上述帖子中发现的原因之外是否还有其他原因导致这种情况发生。

答案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。

相关内容