zsh:解释 .zsh_history 文件中的日期

zsh:解释 .zsh_history 文件中的日期

我已经从另一个会话复制了.zsh_history文件,我想检查它。通常,如果我检查标准~/.zsh_history文件,我只会使用 zsh 内置命令history,我可以在其中指定自定义日期格式:

$ history -t '(%a) %Y-%b-%d %H:%M' 0
90  (Sat) 2021-Sep-11 17:24  cd ..
91  (Sat) 2021-Sep-11 17:24  ls
92  (Sat) 2021-Sep-11 17:26  run-help history

历史命令似乎没有选项来指定读取哪个文件。我可以简单地对文件进行cat,但随后我看到了非人类可读的日期格式(纪元?):

: 1631327094:0;echo
: 1631340742:0;true

我如何使用 zsh 的某些函数来解释历史文件,或者如果不可能,我如何使用一些简单的 python 脚本来解释它,以便我可以看到类似于上面的历史示例的日期格式。

答案1

时间戳以标准形式表示Unix时间:自纪元(即 1970-01-01)以来的秒数。

% TZ=Pacific/Kiritimati date +'(%a) %Y-%b-%d %H:%M' -d @1631327094
(Sat) 2021-Sep-11 16:24
% TZ=Pacific/Kiritimati python -c 'import datetime, sys; print(datetime.datetime.fromtimestamp(int(sys.argv[1])).strftime("(%a) %Y-%b-%d %H:%M"))' 1631327094
(Sat) 2021-Sep-11 16:24

答案2

暂时更改历史文件。

chmod -w <oldsessionhistfile> # Prevent new entries in it.
fc -p <oldsessionhistfile> # Set new history file
history # Inspect or whatever you want to do
fc -P # Restore previous one

这里

相关内容