마지막 cd 명령을 어떻게 취소 할 수 있습니까?


77

cd다른 디렉토리 로 이동 한 후 이전 작업 디렉토리로 되돌아 갈 수있는 방법이 있습니까?

내 유스 케이스는 Java 프로젝트의 디렉토리 구조를 순회하고 있으며 현재 디렉토리에는 하나의 하위 디렉토리 만있을 것으로 기대합니다. 그래서, 입력 cd과 충돌 Tab하고 Enter오히려 빨리. 그러나 Tab실제로 하나 더 많은 하위 디렉토리가있을 때 실수로 하나의 하위 디렉토리를 예상했기 때문에 실패했습니다. 이제 방금을 실행 cd했으며 이제 Java 프로젝트 대신 홈 디렉토리에 있습니다. 이것을 "실행 취소" cd하고 내가 있던 디렉토리로 건너 뛸 수 있는 방법이 있습니까?

답변:


130

cd -위치에 상관없이 이전 위치로 돌아갈 수 있습니다 .


10
글쎄 ... 우분투에서 몇 년이 지난 후에도 나는 그것을 몰랐습니다. 감사합니다
andybleaden

19

cd - 한 수준으로 돌아가는 데는 좋지만 몇 가지 수준으로 돌아가고 싶다면 다음 스크립트를 확인하십시오.

acd_func.sh

훌륭합니다. 예를 들어, cd --당신의 역사를보고, cd -33 단계로 돌아 가기 위해.


와우 ... 지오 시티 링크. 이제 오랫동안 보지 못한 URL이 있습니다. <Obi-wan JPG 삽입>
Michael Butler

1
이 의견 의 요지 . <jpg Yoda insert>
Donbhupi


5

또한, cd ..당신을 데려 갈 수 다시 작업 디렉토리의에 부모 당신이 원하는 곳으로 얻을 때까지 명령이 반복 될 수 필요한 경우 디렉토리와 다음. 사실, 그것을 유발 될 때마다 궁극적으로 완료 할 디렉토리 트리를 통해 돌아갑니다 /(루트 디렉토리) 경우 당신은 단지 명령을 반복 유지했다.

대비 , cd -실제로 이전 작업 (로 알려져 디렉토리 현재 작업 디렉토리, 만드는 .파일 시스템의 정확한 위치를 찾을 수 있습니다), 그리고 어느 pwd.

그래서 둘 cd ..cd - 디렉토리 트리를 탐색 할 때 그들이 않지만, 다른 상황에서 유용 할 수 있습니다 다른 전술 측면에서. 이 두 명령을 재미있게 실험 한 후 가장 유용한 명령 cd은 홈 폴더로 돌아갑니다.


-1

되돌아 가기 위해 이것을하는 가장 좋은 방법은 cd -, 만약 한번에 많은 레벨을 건너 뛰고 싶다면, cd ..한 레벨, cd ../..두 개, cd ../../..세 개 그리고 그 이상을 사용 하는 것이 더 좋습니다. 스크립트:

#!/bin/bash
printf "Number of folders to move back: "
read TIMES
BACKCHARS=../
BACK=$(for i in `seq $TIMES`; do printf $BACKCHARS; done)
cd $BACK

1
cd스크립트에서 실행 해도 상위 셸에는 영향을 미치지 않습니다. 이것을 유용하게 사용하려면 이것을 쉘 함수에 넣어야합니다.
wjandrea

이 같은up(){ local n="$1"; while ((n--)); do path+='../'; done; cd "$path"; }
wjandrea
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.