변수에 들어가기 위해 디렉토리가 푸시되었습니다.

변수에 들어가기 위해 디렉토리가 푸시되었습니다.

popd 명령을 실행하는 대신 bash 변수에 방금 푸시된 디렉터리를 포함하려면 어떻게 해야 합니까?

답변1

이전 디렉터리의 이름만 알고 싶다면 다음을 실행하세요.

% echo $OLDPWD

해당 디렉토리로 들어가고 싶다면 간단히 할 수 있습니다

% cd -

자동으로 다음과 같이 변경됩니다.$OLDPWD

Pushd-popd를 사용하여 전체 디렉터리 스택을 생성하려는 경우

% dirs -v

그러면 디렉토리 이름 옆에 디렉토리 색인이 인쇄됩니다.

다음을 입력하면 해당 디렉토리로 이동할 수 있습니다.

% pushd +N 

여기서 N은 디렉토리의 인덱스입니다.

답변2

Bash에는 DIRSTACK배열 변수 가 있습니다:

DIRSTACK
디렉터리 스택의 현재 내용을 포함하는 배열 변수입니다. 디렉토리는 내장 디렉토리에 표시된 순서대로 스택에 나타납니다.

마지막으로 푸시된 것은 index 이고 "${DIRSTACK[0]}", 두 번째로 푸시된 것은 index 였습니다 [1].

me@hostname /tmp$ pushd a
/tmp/a /tmp
me@hostname /tmp/a$ pushd /tmp/b
/tmp/b /tmp/a /tmp
me@hostname /tmp/b$ dirs
/tmp/b /tmp/a /tmp
me@hostname /tmp/b$ declare -p DIRSTACK
declare -a DIRSTACK=([0]="/tmp/b" [1]="/tmp/a" [2]="/tmp")

관련 정보