History -c 不会将 $HISTCMD 重置为 1

History -c 不会将 $HISTCMD 重置为 1

TL;DR:如果您的历史记录开始截断(例如,您的HISTSIZE历史记录为 400,但您的历史记录编号为 500),则重置您的历史记录history -c将清除HISTSIZE或减少历史记录中的行数,并从您的历史记录编号中减去那么多行,但不会重置它为 0(在本例中,它将重置为 100)。如何才能将历史号码彻底重置回0呢?


Bash 4.2(以及 4.4)。我希望我的历史记录数字少于 4 位。相关 bashrc 部分:

HISTSIZE=99
HISTFILESIZE=100
#ignores back-to-back duplicate commands, not those that start with a space
HISTCONTROL=ignoredups
#ignore commands fewer than 5 characters long because we can type those
HISTIGNORE="?:??:???:????:?????:history"

history\!PS1 中看到的历史数字显然会超出这些值。我希望能够在历史记录数量超过 1,000 时将其重置为 ~100。

history -c清除终端历史记录,但这只会减少历史记录数量所清除的命令数量,例如:

j:~$ history | wc -l
99
j:~$ echo $HISTFILESIZE
100
j:~$ echo $HISTCMD 
1203
j:~$ history -c
j:~$ echo $HISTCMD
1106

那么...我如何将历史记录数字降低到较小的数字,例如$HIST(FILE)SIZE.这是在 tmux 会话中,但我认为这并不重要。

另外:是否有一种方法可以将当前历史记录数字作为变量获取,并且需要比我当前使用的管道更少的管道?编辑:正如杰夫提到的,$HISTCMD存储这个值。

提供的解决方案均无效。他们的做法如下set -x

History -c 不清除历史记录

相关内容