![변수에 들어가기 위해 디렉토리가 푸시되었습니다.](https://linux55.com/image/190002/%EB%B3%80%EC%88%98%EC%97%90%20%EB%93%A4%EC%96%B4%EA%B0%80%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EA%B0%80%20%ED%91%B8%EC%8B%9C%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
popd 명령을 실행하는 대신 bash 변수에 방금 푸시된 디렉터리를 포함하려면 어떻게 해야 합니까?
답변1
이전 디렉터리의 이름만 알고 싶다면 다음을 실행하세요.
% echo $OLDPWD
해당 디렉토리로 들어가고 싶다면 간단히 할 수 있습니다
% cd -
자동으로 다음과 같이 변경됩니다.$OLDPWD
Pushd-popd를 사용하여 전체 디렉터리 스택을 생성하려는 경우
% dirs -v
그러면 디렉토리 이름 옆에 디렉토리 색인이 인쇄됩니다.
다음을 입력하면 해당 디렉토리로 이동할 수 있습니다.
% pushd +N
여기서 N은 디렉토리의 인덱스입니다.
답변2
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")