$pwd가 특정 폴더에 있을 때 명령을 기록에 저장하지 않습니까?

$pwd가 특정 폴더에 있을 때 명령을 기록에 저장하지 않습니까?

자동 완성 및 기록을 위해 zsh를 사용하는데 잘 작동하지만 명령 기록이 때때로 원치 않는 항목으로 채워지는 경우가 있습니다. 예를 들어 movies폴더 아래에서 많은 작업을 수행합니다. 등, 파일 이동, 이름 바꾸기 등이 전혀 표시되어서는 안 됩니다. 명령 내역.

문제를 방지하고 일부 특정 폴더에 저장된 명령 기록을 제외할 수 있습니까?

답변1

zshaddhistory후크 기능을 사용하여 기본 "기록 저장" 동작을 무시할 수 있는 것 같습니다 .

zshaddhistory() {
  case $PWD in
    (*/movies) return 1;;
    (*)        return 0;;
  esac
}

man zshmisczshaddhistory 함수를 언급하는 참고자료의 설명을 참조하세요 .

히스토리 라인을 대화형으로 읽을 때 실행되기 전에 실행됩니다. 유일한 인수는 완전한 히스토리 라인입니다(종료 줄 바꿈이 여전히 존재하도록).

후크 함수가 0이 아닌 값을 반환하면 히스토리 라인은 저장되지 않지만 다음 라인이 실행될 때까지 히스토리에 남아 있으므로 즉시 재사용하거나 편집할 수 있습니다.

관련 정보