.zsh_history 中数字时间戳后带有“0”的列的用途是什么?

.zsh_history 中数字时间戳后带有“0”的列的用途是什么?

0.zsh_history 中数字时间戳后面的列的用途是什么?

: 1568128379:0;cp -a ~/.zshrc.pre-oh-my-zsh ~/.zshrc
: 1568128381:0;exit

它是时间戳的一部分还是完全有不同的用途?

答案1

如果 shell 的EXTENDED_HISTORY选项是,那么这个数字就是命令执行所花费的秒数。

zsh手册(info zsh extended_historyzshoptions(1)手册页):

EXTENDED_HISTORY <C>
将每个命令的开始时间戳(自纪元以来以秒为单位)和持续时间(以秒为单位)保存到历史文件中。该前缀数据的格式为:

: <beginning time>:<elapsed seconds>;<command>

history当您使用内置选项时,该数字也会以人类可读的“MM:SS”格式显示-D

sleep 7显示花费 7 秒的示例:

% sleep 7
% tail -n 2 $HISTFILE
: 1697802061:7;sleep 7
: 1697802074:0;tail -n 2 $HISTFILE
% history -D -2
 3158  0:07  sleep 7
 3159  0:00  tail -n 2 $HISTFILE

示例显示我mutt在某个时刻跑了 3008 秒(50 分 8 秒):

% history -D 2070 2070
 2070  50:08  mutt
% sed '2070!d' $HISTFILE
: 1697438226:3008;mutt

至于为什么它可能会显示0给你,请参阅为什么 .zsh_history 中的持续时间列通常为 0,尽管“history -D”命令显示它?

相关内容