$ pwd
/tmp/d1
$ dirs
/tmp/d1
$ pushd ../d2
/tmp/d2 /tmp/d1
$ popd
/tmp/d1
$ pwd
/tmp/d1
pushd
현재 디렉토리를 ? /tmp/d1
로 넣었음에도 불구하고 항상 스택에 푸시하는 것 같습니다 . pushd ../d2
달리다
알아채다:http://linux.101hacks.com/cd-command/dirs-pushd-popd/
dir 명령의 첫 번째 디렉터리 출력은 항상 스택의 내용이 아닌 현재 디렉터리입니다.
답변1
아니요, pushd
현재 디렉터리가 항상 푸시되는 것은 아닙니다. bash
' 페이지 에서 man
:
pushd [-n] [+n] [-n]
pushd [-n] [dir]
Adds a directory to the top of the directory stack, or rotates
the stack, making the new top of the stack the current working
directory. With no arguments, exchanges the top two directo‐
ries and returns 0, unless the directory stack is empty.
.
.
dir Adds dir to the directory stack at the top, making it
the new current working directory.
디렉토리가 있는 양식은 pushd [dir]
디렉토리가 명시적으로 매개변수로 사용되지 않는 한 현재 디렉토리를 사용하지 않습니다. 행위pushd somedir
답변2
을 사용하고 있는데 "동일한 디렉터리의 여러 복사본을 디렉터리 스택에 푸시하지 마세요." zsh
라는 옵션이 있습니다 . PUSHD_IGNORE_DUPS
쉘 옵션을 확인하고 싶을 수도 있습니다( zsh
이 작업이 필요했기 때문에 unsetopt pushdignoredups
).