在 zsh_history 文件中以冒号“:”开始一行的原因

The reason of starting a line with colon ":" in zsh_history file

我正在使用 zsh 历史插件,它添加了我输入的命令的时间戳。 .zsh_history 文本文件的原始文件如下所示:

: 1582469132:0;jupyterlab
: 1582469132:0;jupyter notebook
: 1582469132:0;jupyterlab
: 1582469132:0;jupyter lab
: 1582469132:0;jupyter notebook
: 1582469132:0;ls

我只是不明白为什么要使用这种格式,为什么每个行项目都以冒号开头 :?

我很确定这个插件不是唯一使用这种格式的插件。我已经看到 SWIFT 条消息使用这种格式和其他一些我不记得名字的文件。

我不是肯定的,但我相信前导冒号允许您将历史文件作为脚本执行。

: 是一个什么都不做的命令:它忽略它的参数然后以 0 的退出状态完成。在这种情况下,参数是字符串 <timestamp>:0;分号是命令终止符。

您可以在提示下尝试一下:

% : 1235:0;echo hello
hello

因此,将此文件作为脚本执行与执行

具有相同的效果
jupyterlab
jupyter notebook
jupyterlab
jupyter lab
jupyter notebook
ls

您不太可能想要将任意历史文件作为脚本执行,但包含特制历史的文件可能会有用。