为什么history命令显示的行号与less和wc -l显示的历史文件的行号不同?

为什么history命令显示的行号与less和wc -l显示的历史文件的行号不同?

less -N .bash_history来自和的行号wc -l .bash_history比 bash 内置命令 显示的行号多 44 行history。将 的历史记录列表中的最后20条与history的历史文件中的最后20条进行比较less,发现这些命令是相同的,这就排除了重复命令的原因,那么是什么原因导致历史记录之间的行号不同呢?命令和 wc 或更少?

我最初假设历史命令只是计算历史文件中的命令,但不同的结果与less -Nwc -l表明情况并非如此

答案1

这是因为 bash_history 可能会记录每个命令的 Epoch 时间戳。

HISTTIMEFORMAT 环境变量在 bashrc 文件中设置为 HISTTIMEFORMAT="[%F %T] "),bash 存储每个历史记录项的时间戳,当用户使用 BASH 内置历史记录检查历史记录时,时间戳会以简单的方式显示-可读格式(例如:2019-07-24 15:40:19);但是,当这些历史会话保存到文件(例如~/.bash_history)时,时间戳会以 Unix 时间(自纪元以来的秒数)显示。

您可以使用带有选项 -r 或 -w 的历史记录来输入 .bash_history 文件。

https://ss64.com/bash/history.html

我希望这回答了你的问题。

相关内容