Shell
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
history 命令似乎沒有選項來指定要讀取的文件。我可以簡單地對文件進行分類,但隨後我看到了非人類可讀的日期格式(紀元?):
: 1631327094:0;echo : 1631340742:0;true
我如何使用一些 zsh 的函式來解釋歷史文件,或者如果不可能,我如何使用一些簡單的 python 腳本來解釋它,以便我可以看到類似於我上面的歷史範例的日期格式。
時間戳以標準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
臨時更改歷史文件。
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
從這裡。