2012-05-18 4 views

답변

39

당신은 단순히 다시 이전 위치로 이동합니다

cd - 

을 할 수 있습니다.

일부 쉘에서는 pushdir/popdir 명령 인 check out this site을 사용할 수 있습니다. 이 SO question이 유용 할 수도 있습니다.

+0

감사합니다. 'pushd'와'popd'가 작동합니다! :) 그러나 에코를 끄는 방법이 있습니까? (즉, 그 명령이 'quiety'를 실행하도록 하시겠습니까?) –

+2

@ 보통 내가'cd-'를 사용하기 때문에 나는 모른다. 그러나'pushd>/dev/null'과 같은 일을 할 수 있습니다. 이것을 스크립트에 넣으면 셸을 닫을 수있는 옵션이있을 수 있습니다. – Levon

+0

알겠습니다. 고맙습니다!!! –

1

PWD를 변수에 에코하여 해당 변수로 되돌릴 수 있습니다. 더 조용 할 수도 있습니다.

+0

그래, 좋은 생각이야! –

+0

'$ OLDPWD'가 아닌가요? – IsaacS

3

스크립트 내부에서 실행중인 경우 개인 작업 값 $ PWD가있는 하위 프로세스 내에서 스크립트의 일부를 실행할 수도 있습니다.

# do some work in the base directory, eg. echoing $PWD 
echo $PWD 

# Run some other command inside subshell 
(cd ./new_directory; echo $PWD) 

# You are back in the original directory here: 
echo $PWD 

이 그 장점과 단점이 있습니다 ... 그것은 잘 디렉토리를 분리 않지만, 당신이 많은 일을하는 경우 하위 프로세스를 산란하는 것은 비용이 많이들 수있다. (편집 : @ 노먼 그레이가 아래에서 지적했듯이 나머지 스크립트에서 일어나는 다른 작업과 비교할 때 하위 프로세스를 생성하는 성능 저하는 아마도별로 비쌉니다.)

유지 관리를 위해 스크립트가 천천히 실행되고 있다는 것을 증명할 수 없다면 일반적으로이 방법을 사용합니다. "의 출력을 저장 포함

# cd /some/horribly/long/path 
# save spud 
# cd /some/other/horrible/path 
# save green 
... 
# go spud 
/some/horribly/long/path 

이 기본적으로 A directory navigation productivity tool에 문서화되어 있지만 :

+0

+1 원칙적으로 실적이 좋았습니까? 내장 쉘이 아닌 모든 명령어가 포크를 수행 할 것이기 때문에, 서브 쉘을위한 포크가 상당한 성능 저하를 초래할 것 같지는 않습니다. –

0

또 다른 대안은 당신이라는 이름의 디렉토리로 이동 할 수 있도록 당신의 .bashrc에 추가 할 수있는 기능의 작은 집합입니다 위의 경우에 "pwd"를 지명 된 니모닉 ("spud"및 "green")에 넣은 다음 파일 내용으로 cd'ing하십시오.

관련 문제