zsh如何存储历史?历史文件格式

Now*_*ick 7 zsh oh-my-zsh

我不确定我是否完全理解zsh如何存储其历史.示例行:

: 1458291931:0;ls -l

我猜我们在这里:

  • 时间戳:1458291931
  • 命令:ls -l

但是这是什么神秘的0在手段之间?

Ada*_*hon 5

这是所谓的*扩展历史记录格式,由EXTENDED_HISTORYshell选项启用.第二个数字("神秘0 ")是命令的持续时间."0"表示命令快速完成或 - 根据您的设置 - 不保存持续时间.如果其中一个shell选项 INC_APPEND_HISTORYSHARE_HISTORY启用(你可以检查此用setopt | grep -E '^(incappend|share)history$'),然后zsh将确认命令后,立即写历史进入到历史文件.在这种情况下,持续时间将保存为"0".

如果要在shell会话期间将历史记录保存到文件时使用持续时间度量标准,则可以设置该选项INC_APPEND_HISTORY_TIME,在这种情况下,在zsh写入条目之前将等待命令完成.显然,这将表现得像INC_APPEND_HISTORY.

注意:只有一个选项INC_APPEND_HISTORY,INC_APPEND_HISTORY_TIME并且SHARE_HISTORY应该是活动的