누군가 나에게 이것을 설명해 줄 수 있습니까? 어떻게 설정되어 있고 왜 이렇게 작동하는지 이해할 수 없습니다.
zsh
어디인지 보고싶다실제로내가 사용하는 컴퓨터에 설치되었습니다. 그래서 저는 보통 ls
심볼릭 링크가 가리키는 곳을 찾습니다.
$ ls -l /bin/zsh
lrwxrwxrwx 1 root root 14 Dec 1 2011 /bin/zsh -> ../sfw/bin/zsh*
이것을 보았을 때 나는 "좋아, 심볼릭 링크는 상대 경로를 사용한다. 별거 아니다"라고 생각했습니다.
하지만 내가 cd
직접 하려고 하면~해야 한다상대 경로가 가리키는 위치는 다음과 같습니다.
$ cd /bin/sfw/bin
cd: no such file or directory: /bin/sfw/bin
하지만 내가 구체적으로 입력하면이것
$ cd ../sfw/bin
작업 디렉토리는 언제 /bin
작동합니까? 그런 다음 나는 이것을 또한 얻었다:
$ pwd
/usr/sfw/bin
여기서 무슨 일이 일어나고 있는 걸까요?
답변1
/bin
/usr/bin
아마도 시스템의 심볼릭 링크일 것입니다. 이것이 사실이라면:
/bin/../sfw/bin/zsh
사실 똑같다
/usr/bin/../sfw/bin/zsh
이는 다음과 같이 감소합니다.
/usr/sfw/bin/zsh
zsh
실제 거주지는 이곳 이다 . 당신이 시도한 것은
/bin/sfw/bin
시스템에 실제로 표시되는 경로와 일치하지 않습니다. ../sfw/bin/zsh
상대 경로( )의 기초를 형성하는 절대 경로가 주어지면 상대 경로( )를 구문 분석하는 올바른 방법은 이들을 + → /bin
로 연결하는 것입니다 ./bin/
../sfw/bin/zsh
/bin/../sfw/bin/zsh