심볼릭 링크가 있습니다
~/link -> ~/a/really/long/path
내가 할 때
cd ~/link
cd ..
그것은 나를 데려 간다
~
하지만 가고 싶다
~/a/really/long
이것을 할 수있는 방법이 있습니까?
bash를 사용하고 있습니다.
답변
Bash (ksh, zsh 및 ash)는 디렉토리 변경 사항을 추적하므로 심볼릭 링크 인 경우에도 cd /foo/bar && cd ..
항상 사용자를 안내 합니다. 패스 하는 옵션 추적 된 변경 사항을 무시하고 “실제”디렉토리 구조를 따라하기를 :/foo
bar
-P
cd
cd -P ..
참조 help cd
또는 man builtins
bash는 내장에 대한 문서화 cd
. 디렉토리 추적 기능이 마음에 들지 않으면 set -P
bash ( set -o no_chase_link
zsh)에서 사용하지 않도록 설정할 수 있습니다 .
답변
readlink를 사용하여이 디렉토리에 대한 실제 경로를 찾은 다음 한 디렉토리 이상으로 이동할 수 있습니다.
cd $(readlink -f .)/..
답변
사용할 수있는 한 가지 방법은 심볼릭 링크 대신 별칭을 사용하여 ~ / a / really / long / path로 이동하는 것입니다. 그게 내가 사용하는 방법입니다. 왜냐하면 cd symlink 대신 간단한 1 / 2 / et cetera letter 명령을 입력 할 수 있기 때문입니다.