我已经从另一个会话复制了.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
从这里。