Shell

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

  • September 11, 2021

.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

這裡

引用自:https://unix.stackexchange.com/questions/668590