어떻게든 내 zsh 기록에 아래와 같이 잘못된 타임스탬프가 표시됩니다.
❯ history -E 1 | tail -20
6047 31.12.2019 15:08 babel-node
6048 31.12.2019 15:08 node -v
6049 31.12.2019 15:08 git diff
6050 31.12.2019 15:08 rm package-lock.json
6051 31.12.2019 15:08 yarn update
6052 31.12.2019 15:08 yarn
6053 31.12.2019 15:08 rm yarn.lock
6054 31.12.2019 15:08 yarn install
6055 31.12.2019 15:08 yarn serve
6056 31.12.2019 15:08 exit
6058 31.12.2019 15:00 bin/rails s
6059 31.12.2019 15:00 cd ../my_project
6060 31.12.2019 15:00 bin/rails c
6062 31.12.2019 15:03 man history
6063 31.12.2019 15:03 vi ~/.bash_history
6064 31.12.2019 15:03 vi ~/.zsh_history
6065 31.12.2019 15:04 zsh -f
6066 31.12.2019 15:06 fc -li 100
6067 31.12.2019 15:08 history -E 1 | tail -100
15:08
최신 명령을 제외하고 타임스탬프가 지정된 모든 명령은 history
어제 이전에 실행되었습니다. 명령이 실행될 때 마다 history
이전 명령의 타임스탬프가 새로 고쳐집니다.
과거 데이터를 지우고 싶지만 같은 오류가 발생하고 싶지 않습니다. 이 오류의 원인과 이를 방지하는 방법을 아는 사람이 있습니까?
나는 zsh 5.3 (x86_64-apple-darwin18.0)
그것을 사용하고 있습니다 iTerm2
.
변하기 쉬운
이것은 내 역사 종속 변수입니다.
❯ env | grep HIST
❯ typeset | grep HIST
HISTCHARS='!^#'
integer 10 readonly HISTCMD=6119
HISTFILE=/Users/ironsand/.zsh_history
integer 10 HISTSIZE=10000
integer 10 SAVEHIST=10000
답변1
EXTENDED_HISTORY
에서 쉘 옵션을 설정 하지 않으면 zsh
저장된 기록 이벤트는 $HISTFILE
타임스탬프 없이 저장됩니다.
를 사용하면 history -E 1
기록 이벤트가 메모리 기록의 처음부터 끝까지 타임스탬프(특정 방식으로 형식 지정)와 함께 인쇄됩니다.
읽은 기록 항목에는 타임스탬프가 없으므로 $HISTFILE
명령이 실행된 시간에 해당하는 타임스탬프가 할당됩니다.history
각 기록 이벤트의 타임스탬프를 저장하려면 EXTENDED_HISTORY
셸 옵션을 활성화하세요. 향후 모든 대화식 zsh
셸 세션 에 대해 이 작업을 수행하려면 $ZDOTDIR/.zshrc
파일을 수정하고 추가하십시오.
setopt EXTENDED_HISTORY