홈 디렉토리로 cd하기 전에 디렉토리 위치로 돌아갑니다.

홈 디렉토리로 cd하기 전에 디렉토리 위치로 돌아갑니다.

우리 모두 알고 있듯이 cd인수가 없으면 현재 디렉터리가 홈 디렉터리로 변경됩니다. 이와 같은 명령을 사용한 후 cd실행하기 전에 내가 있던 디렉토리 위치로 돌아갈 수 있는 방법이 있는지 궁금합니다 cd.

요약하자면, 다른 디렉터리에 -ed를 사용한 후 이전 디렉터리로 돌아갈 수 있는 방법이 있습니까 cd? 두 질문에 대한 답변은 같을 것 같지만 만일을 대비해 첫 번째 질문이 제가 답변하고 싶은 주요 질문이기 때문에 분리해 놓았습니다.

답변1

예:

cd -

또는

cd "$OLDPWD"

(디렉터리 이름에 공백이나 와일드카드가 포함되어 있지 않으면 따옴표를 생략할 수 있습니다.)

모든 POSIX 스타일 쉘(bash, ksh, zsh 등)에서 작동합니다. cd -tcsh 및 Fish에서도 작동합니다.

답변2

나는 종종 이 문제를 피하기 위해 pushdand 를 사용합니다.popd

$ pwd
/home/saml/tst/134317

$ ls -l
total 12
drwxrwxr-x. 2 saml saml 4096 Jun  3 16:05 dir1
drwxrwxr-x. 2 saml saml 4096 Jun  3 16:05 dir2
drwxrwxr-x. 2 saml saml 4096 Jun  3 16:05 dir3

이제 가자 dir1.

$ pushd dir1
~/tst/134317/dir1 ~/tst/134317

$ pwd
/home/saml/tst/134317/dir1

그리고 dir2:

$ pushd ../dir2/
~/tst/134317/dir2 ~/tst/134317/dir1 ~/tst/134317

$ pwd
/home/saml/tst/134317/dir2

이제 우리가 방금 왔던 곳으로 돌아갑니다.

$ popd
~/tst/134317/dir1 ~/tst/134317

$ pwd
/home/saml/tst/134317/dir1

다음 명령을 사용하여 스택에 있는 디렉터리를 확인할 수 있습니다 dirs.

$ dirs
~/tst/134317/dir1 ~/tst/134317

현재 있는 디렉터리는 가장 왼쪽 디렉터리입니다.

~/tst/134317/dir1

우리가 "팝"할 디렉토리는 오른쪽 옆에 있는 디렉토리입니다.

~/tst/134317

디렉터리를 추가하면 계속해서 디렉터리를 왼쪽으로 "푸시"하고 왼쪽에서 "팝"합니다.

답변3

Bash를 사용하면 "cd -" 대신 Pushd/popd를 사용할 수 있으며 이를 통해 디렉터리 스택 작업이 가능해집니다.

cd <path1> => move to <path1>
pushd <path2> => move to <path2>
pushd <path3> => move to <path3>
...
popd => return to <path2>
popd => return to <path1>

관련 정보