터미널에서 이전 작업 디렉토리로 이동하는 방법은 무엇입니까?


213

터미널에서 cd명령으로 디렉토리를 변경할 때 있던 이전 디렉토리로 이동하는 키를 어떻게 정의 할 수 있습니까?

예를 들어, 나는에있어 /opt/soft/bin나는 cd/etc/squid3나는 다시 처음 디렉토리 싶어.

답변:


284

당신이 사용할 수있는

cd -

또는 당신은 사용할 수 있습니다

cd $OLDPWD

3
"cd-"를 사용할 때 디렉토리 이름이 콘솔에 인쇄되는 이유는 무엇입니까?
dtmland

4
이전 쉘이 프롬프트에 현재 디렉토리의 이름을 표시하지 않았기 때문에 입력 할 때 디렉토리의 이름을 보는 것이 도움이되었습니다 cd -. 예를 들어 입력 cd /usr/local할 때 자신 이 있음을 알고 /usr/loal있지만 입력 cd -할 때 항상 어느 디렉토리에서 왔는지 기억하지는 않습니다. 입력하지 않아도됩니다 cd -; pwd. 그러나 이것은 모든 추측입니다.
Raphael Ahrens

2
또는 별칭을 사용할 수 있습니다. 별칭을 설정 alias -- -='cd -'한 다음 (4 문자) -대신 (1 문자)를 사용하십시오 cd -. 빠름:D
ADTC

2
이것없이 어떻게 살 수 있을까요?
VSZM

1
@ AndréKuhlmann cd -두 번 할 수 있습니다 . 에 cd /; cd /usr; cd -; cd -있어야합니다 /usr. 그러나 나는 당신의 질문을 이해하지 못할 수도 있습니다.
Raphael Ahrens

54

다른 답변은 직접 답변 의미에서 완전하게 완성됩니다. cd -그리고 이것 cd $OLDPWD에 대한 주요 선택입니다. 그러나 종종 워크 플로를 시작 pushd하고 popd더 잘 작동 한다는 것을 알게되었습니다 .

간단히 말해서, 시작한 곳으로 돌아갈 의도로 디렉토리로 이동하는 경우 pushd/를 사용하십시오 popd.

확장 된 예

주요 차이점은 예를 통해 쉽게 알 수 있습니다.

$ cd dir1
$ pushd dir2

이 시점에서 디렉토리 스택은입니다 dir2, dir1. pushd인수없이 실행 dir1하면 스택을 이제로 되돌릴 수 있습니다 dir1, dir2. popd동일한 작업을 수행하지만 빈 디렉토리 스택을 남겨 둡니다. 이것은 cd -워크 플로를 수행 했을 때와 크게 다르지 않습니다 .

그러나 이제 디렉토리를 여러 번 변경하고로 돌아갈 수 dir1있습니다. 예를 들어

$ cd dir1
$ pushd dir2
$ cd dir3

당신이 실행하는 경우 popd이 시점에서, 당신은 돌아갈 것입니다 dir1.


2
또한 디렉토리를 쌓을 수 있으므로 -ing pushd하는 동안 반복적으로 사용 하고 이전 폴더로 돌아갑니다 popd.
Bernhard

1
확실히. 나는 스택 검사를 포함하는 큰 예를 거의 넣었 dirs -v지만 실제로는 간단한 경우가 내가 실제로 사용하는 것입니다. (또는 더 나쁘게도 시도 push +2하거나 비슷한 경우 실수를 합니다.) 또한 누군가 워크 플로를 시도하게하는 아기 단계를 생각했습니다. :)
Josh Berry

cd터지지 않고 스택 맨 위로 어떻게합니까 ?
Jon Deaton

18

다음을 사용해야합니다.

cd ~-

cd -디렉토리의 성가신 에코없이 (현재 허용되는 답변에서) 와 동일하며 cd "$OLDPWD"or 보다 입력하기가 쉽습니다 cd - > /dev/null.


2
에코를 널 파일로 경로 재 지정! 천재입니다!
Ram

2
에코는 이전 디렉토리가 아닌 새 디렉토리를 표시합니다. 그리고 나는 그것이 현재 위치를 알 수 있도록, 특히 프롬프트에 현재 디렉토리 이름 만 표시하거나 전혀 표시하지 않는 쉘에 있고, 너무 바빠서 전체 경로를 표시하라는 메시지가 표시됩니다. 물론, 프롬프트에 이미 전체 경로가 표시되면 에코가 중복되고 성가 시게됩니다. 이 경우 (5 문자) 대신 (1 문자) alias -- -='cd "$OLDPWD"'를 사용하여 시도해 볼 수 있다고 생각합니다 . -cd ~-:)
ADTC

출처 및 설명 : unix.stackexchange.com/a/330885/38213 스포일러-피연산자이며 ~는 경로 별칭입니다. 그래서 cd ~-/..작동하지만 cd -/..그렇지 않습니다!
레이 포스

16
$ cd - 

이전 작업 디렉토리로 변경됩니다.


3

'~ / .bashrc'파일을 편집하고 명령의 별명을 포함하여 'cd-'에 대해 "키를 정의"할 수 있습니다. 예를 들어 'cdc'를 추가하여 'cd-'로 만들면 다음을 추가하여 마지막 디렉토리에 더 짧은 방법을 제공합니다.

alias cdc='cd -'

이 방법으로 단순히 'cdc'를 입력하면 마지막 작업 디렉토리에 저장됩니다.


5
해당 별칭이없는 시스템을 사용할 때는 끝이 없습니다. 한 번에 한 문자 씩 입력하는 것을 저장합니다. 왜 귀찮게?
CVn

2
"터미널 에서 이전 디렉토리로 이동할 어떻게 정의 할 수 있습니까?" 다른 시스템에있을 때 바로 가기를 사용하십시오.
Atari911

@ Atari911 좋은 질문! 여기에 답이 있습니다 : stackoverflow.com/questions/4200800 여기 내가 한 일이 있습니다 (바운드 F12) : bind '"\e[24~":"\C-k \C-ucd -\n"'(또는 더 바람직하게 inputrc는 대답에서 언급 한대로 파일로 이동하십시오 ).
ADTC

1

cd ..폴더 트리의 선행 폴더로 이동합니다.
cd -이전 폴더로 이동합니다. 이 명령은 일부 배포판 (우분투 16.04)에서 작동하지 않았으며 데비안 9에서 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.