zsh의 cdr 기반 디렉토리 관리를 위한 popd

zsh의 cdr 기반 디렉토리 관리를 위한 popd

최근에 사용하기 시작했어요cdrzsh최근 디렉토리를 기억하기 위해 . pushd등을 사용하곤 했습니다 . 내가 놓친 것 중 하나는 popd기본적으로 "이 디렉토리 사용을 마쳤습니다. 이전에 있던 위치로 되돌리고 스택에서 이 항목을 제거합니다."를 의미합니다.

비슷한 의미 체계를 로 수행할 수 있습니까 cdr?

편집: "기록"을 "스택"으로 변경합니다.

답변1

당신은 입력할 수 있습니다

cdr -p $PWD

그리고 cdr그럴 것이다치다목록에서 현재 있는 디렉토리입니다. 다른 디렉토리를 정리하려면 $PWD제거하려는 디렉토리의 절대 경로 이름으로 바꾸십시오. 또는 전체 디렉토리 세트를 제거하려는 경우 인수에 glob 패턴을 사용할 수도 있습니다. 그리고 cdr -p변경하기 전에 귀하의 작업 결과가 어떻게 될지 보여주고 확인을 요청하므로 "우연히 모든 일이 발생하는 것"에 대해 걱정할 필요가 없습니다. 보다http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Options-2더 많은 정보를 위해서.


우리가 속한 이전 디렉토리로 돌아가려면 다음을 수행하십시오.

cd -

이 두 가지를 하나의 함수로 결합할 수 있습니다.

cdpop() {
  local dir=$PWD

  # `cdr` without arguments does the same `cdr 1`: Go back to the previous 
  # dir.
  cdr

  # `-P` does the same as `-p`, but is silent and doesn't ask for 
  # confirmation.
  cdr -P $dir
}

cdr그건 그렇고: 명령을 수행하도록 설정할 수도 있습니다 cd. 이를 활성화하려면 ~/.zshrc파일에 다음을 입력하십시오.

zstyle ':chpwd:*' recent-dirs-default true

cdr그런 다음 특정하지 않은 인수를 전달하면 대신 cdr전달됩니다 cd. 그러면 cd또는 을 사용할지 고민할 필요가 없습니다 cdr. 항상 cdr모든 것에 사용할 수 있습니다. 보다http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Configuration-2더 많은 정보를 위해서.


내가 놓친 것 중 하나는 입니다 popd. 이는 기본적으로 "이 디렉토리 사용을 마쳤습니다. 이전에 있던 위치로 되돌리고 기록에서 이 항목을 제거합니다."를 의미합니다.

작은 수정: popd디렉토리를 제거하지 않습니다.역사, 에서 제거합니다.디렉토리 스택.

관련 정보