심볼릭 링크를 사용하여 상위 디렉토리 (../) 변경 .. 그것은

심볼릭 링크가 있습니다

~/link -> ~/a/really/long/path

내가 할 때

cd ~/link
cd ..    

그것은 나를 데려 간다

~

하지만 가고 싶다

~/a/really/long

이것을 할 수있는 방법이 있습니까?

bash를 사용하고 있습니다.



답변

Bash (ksh, zsh 및 ash)는 디렉토리 변경 사항을 추적하므로 심볼릭 링크 인 경우에도 cd /foo/bar && cd ..항상 사용자를 안내 합니다. 패스 하는 옵션 추적 된 변경 사항을 무시하고 “실제”디렉토리 구조를 따라하기를 :/foobar-Pcd

cd -P ..

참조 help cd또는 man builtinsbash는 내장에 대한 문서화 cd. 디렉토리 추적 기능이 마음에 들지 않으면 set -Pbash ( set -o no_chase_linkzsh)에서 사용하지 않도록 설정할 수 있습니다 .


답변

readlink를 사용하여이 디렉토리에 대한 실제 경로를 찾은 다음 한 디렉토리 이상으로 이동할 수 있습니다.

cd $(readlink -f .)/..


답변

사용할 수있는 한 가지 방법은 심볼릭 링크 대신 별칭을 사용하여 ~ / a / really / long / path로 이동하는 것입니다. 그게 내가 사용하는 방법입니다. 왜냐하면 cd symlink 대신 간단한 1 / 2 / et cetera letter 명령을 입력 할 수 있기 때문입니다.


답변