从 .zsh_history 文件中删除随机生成的(?)数字

从 .zsh_history 文件中删除随机生成的(?)数字

每当我打开我的电脑时,.zsh_history我总是会得到这些数字:

: 1563741867:0;zsh --version
: 1563741874:0;ls
: 1563741883:0;cd Desktop
: 1563741888:0;cd ..
: 1563741892:0;ls -a
: 1563741927:0;open .zshrc

答案1

这个数字显然不是随机生成的:如果是随机生成的,这些数字就不会按顺序排列并且不会靠在一起。它实际上是标准 Unix 格式的时间戳,即自发生事件以来的秒数。Unix时代(1970-01-01)。

% date -d @1563741867
Sun Jul 21 22:44:27 CEST 2019

第二个数字(在示例中始终为 0)是命令运行的时间量(更准确地说,是到下一个提示的时间 — 命令进入后台后所花费的时间不计算在内)。

这两个数字的存在由选项控制extended_history,默认情况下处于关闭状态。如果您setopt extended_history从 中删除.zshrc并重新启动 zsh,则当 zsh 写入新的历史记录条目时,这些数字将消失。如果您使用 oh-my-zsh 等框架为您打开此选项,请了解如何配置它或unsetopt extended_history在加载框架后添加。

无法对时间戳使用不同的语法。这是毫无意义的:它是一种内部存储格式,仅供 zsh 读回,而不供人类直接使用。如果您想查看时间,通常的方法是运行fchistory内置的可以选择打印时间戳,例如

history -i

相关内容