popd/pushd 경로 스택 삭제 또는 지우기

popd/pushd 경로 스택 삭제 또는 지우기

너무 많이 입력한 후에 pushd전체 경로 스택을 지우고 싶습니다.

popd스택의 모든 항목을 어떻게 처리합니까 ?

popd스택에 몇 개가 있는지 알 필요는 없을 것 같은데요 ?

bash 매뉴얼 아니요이걸 커버하는 것 같다.

왜 이것을 알아야 합니까? 나는 까다롭고 스택을 청소합니다.

답변1

dirs -c당신이 찾고있는 것.

답변2

스택을 모두 지우려면그리고스택 맨 아래에서 작업 디렉터리를 복원하려면 다음을 수행할 수 있습니다.

  • 에서 해당 디렉터리를 검색하고 dirs, 해당 디렉터리로 변경하고, 스택을 지웁니다.

    cd "$(dirs -l -0)" && dirs -c
    

    여기 옵션은 를 입력하려고 할 때 실패하지 않도록 -l전체 경로를 나열 하고 스택 맨 아래에서 첫 번째 항목을 검색합니다.cd~-0

    @jw013은 경로 확장을 피하여 명령을 더욱 강력하게 만들 것을 제안했습니다.

    pushd -0 && dirs -c
    
  • 또는 오류가 발생할 때까지(디렉터리 스택이 비어 있을 때의 호출 상태입니다 popd):popd

    while (( $? == 0 )); do popd; done
    

관련 정보