.zsh_historyの数値タイムスタンプの後に「0」がある列の目的は何ですか?

.zsh_historyの数値タイムスタンプの後に「0」がある列の目的は何ですか?

0.zsh_historyの数値タイムスタンプの後の列の目的は何ですか?

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

タイムスタンプの一部ですか、それともまったく異なる用途に使用されますか?

答え1

シェルEXTENDED_HISTORYオプションが次の場合置くこの場合、この数字はコマンドの実行にかかる時間(秒単位)です。

zshマニュアル(info zsh extended_historyまたはzshoptions(1)マニュアルページ)から:

EXTENDED_HISTORY <C>
各コマンドの開始タイムスタンプ(エポック以降の秒単位)と期間(秒単位)を履歴ファイルに保存します。このプレフィックスデータの形式は次のとおりです。

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

history組み込みオプションを使用すると、数値が人間が読める「MM:SS」形式で表示されます-D

sleep 77秒かかることを示す例:

% 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それがあなたに現れる理由については、以下を参照してください。「history -D」コマンドが表示されますが、.zsh_historyの期間列が通常ゼロであるのはなぜですか?

関連情報