
우리 모두 알고 있듯이 cd
인수가 없으면 현재 디렉터리가 홈 디렉터리로 변경됩니다. 이와 같은 명령을 사용한 후 cd
실행하기 전에 내가 있던 디렉토리 위치로 돌아갈 수 있는 방법이 있는지 궁금합니다 cd
.
요약하자면, 다른 디렉터리에 -ed를 사용한 후 이전 디렉터리로 돌아갈 수 있는 방법이 있습니까 cd
? 두 질문에 대한 답변은 같을 것 같지만 만일을 대비해 첫 번째 질문이 제가 답변하고 싶은 주요 질문이기 때문에 분리해 놓았습니다.
답변1
예:
cd -
또는
cd "$OLDPWD"
(디렉터리 이름에 공백이나 와일드카드가 포함되어 있지 않으면 따옴표를 생략할 수 있습니다.)
모든 POSIX 스타일 쉘(bash, ksh, zsh 등)에서 작동합니다. cd -
tcsh 및 Fish에서도 작동합니다.
답변2
나는 종종 이 문제를 피하기 위해 pushd
and 를 사용합니다.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>