2016-11-12 1 views
-1

매우 긴 경로에 대한 바로 가기로 사용할 환경 변수 (어쩌면 올바른 단어가 아닌가?)를 어떻게 만들 수 있습니까? 그러나, 나는 그것이 전체 경로가되고 싶지 않아요. 나는 bashrc에있는 절대 경로를 설정하는 방법을 알고 있지만 내가 원하는 것은 무엇인가 같다 :전체 경로 부분에 환경 변수 사용

cd $MYPATH/further/down/path/ 

가 어떻게 설정 $MYPATH 이런 방식으로 사용합니까? 내가 이걸 위해 구글로 돌아 가려고 할 때마다 나는 싫어하는 전체 경로의 별명을 붙인다.

편집 # 1) 각 새로운 터미널 세션마다 영구적 인 경로를 원합니다. 그래서 나는 bashrc에 넣을 명령을 찾고있다. alias MYPATH=~/my/path을 수행하면 작동하지 않습니다. 나는 내가 원하는 것을하지 않는다는 것을 단지 깨닫지 못하는 간단한 명령이있을 것이라고 확신한다.

+0

원하는 경로로 MYPATH를 설정하면 무엇이 문제입니까? bash가 env를 평가하기 때문에'cd'가 작동 할 것입니다. vars ... 불분명하게 ... 더 잘 설명해주세요. –

+0

CDPATH 외에도'alias work = cd/... '를 자주 방문하는 항목에 별명을 사용할 수 있습니다. – eckes

답변

1

정확하게 생각한대로 작동합니다. 당신이

export MYPATH=/home/user 

을 정의하면 모든 쉘은 변수를 정의 쉘의 자식으로 시작에서 당신은

cd $MYPATH/further/down/path/ 

처럼 사용할 수 있습니다. 영속성을 유지하려면 프로필이나 bashrc 스크립트에 넣으므로 로그인 할 때마다 설정됩니다. 그것이이 변수를 인용 (그러나 대한 'singlequotes'을 사용하지 말아 다치게하지 않는 공백이 포함 된 경우, 마지막으로

cd ${MYPATH}2/other 

과 :

주의 : 당신이 변수 후 문자을 연결하려는 경우이를 사용하는 것) :

cd "${MYPATH}/test" 
+0

감사합니다! 수출, 결코 전에 사용하지! 이것은 내가 찾고 있던 바로 그 것이다. – Twitchykid

+0

'export'는 현재 쉘뿐만 아니라 * child * 프로세스가 사용할 변수의 값을 설정하기 위해서 필요합니다. – chepner

+0

@chepner 예, 자식 셸이있는 경우가 드물지 않기 때문에 기본적으로 포함 시켰습니다. – eckes

1

CDPATH에는 인수로 사용 된 상대 디렉토리를 해결할 때 시작점으로 사용해야하는 디렉토리 목록이 cd에 있습니다. 예를 들어, bin하면

CDPATH=/a/b/c/d/e:/a/b/c/f/g 

cd bin 

는 현재 작업 디렉토리에 디렉토리가 아닌, bash/a/b/c/f/g/bin, /a/b/c/d/e/bin 먼저 변경을 시도합니다.