
~
나의 기본적인 질문은 왜 이 두 경로가 모두 홈(즉, ) 을 가리키는가 하는 것입니다 . 동일한 집을 가리키는 걸까요, 아니면 중복된 걸까요?
중복된 것인지 의심스럽습니다. 그렇지 않은 경우 cd ..
다시 가져올 디렉터리를 어떻게 결정합니까?
답변1
동작 방식 cd ..
은 셸, 셸 설정 및 심볼릭 링크 관련 여부(이 경우 가능성 있음)에 따라 달라집니다.
bash-4.1$ cd /var/tmp
bash-4.1$ mkdir -p real/cats
bash-4.1$ ln -s real/cats dogs
bash-4.1$ cd dogs/
bash-4.1$ pwd
/var/tmp/dogs
bash-4.1$ pwd -P
/var/tmp/real/cats
bash-4.1$ cd ..
bash-4.1$ pwd
/var/tmp
bash-4.1$ set -o physical
bash-4.1$ cd dogs
bash-4.1$ pwd
/var/tmp/real/cats
bash-4.1$ cd ..
bash-4.1$ pwd
/var/tmp/real
bash-4.1$
/var/mail
디렉토리 를 조사하면 ls
Apple에서 수행한 심볼릭 링크가 있는지 알 수 있을 것입니다.
답변2
macOS에서 (당신이 언급한 이후로 이것이라고 추측합니다 /Users
) 은 사용자의 형식이 지정된 받은 편지함 사서함 /var/mail/username
이며 동일한 사용자의 홈 디렉터리입니다.mbox
username
/Users/username
/var/mail/username
수정되지 않은 일반적인 macOS 설치에서는~ 아니다사용자의 홈 디렉토리에 대한 심볼릭 링크이거나 /Users/username
에 대한 링크 가 아닙니다 /var/mail/username
.
cd ..
기본적으로 cd -L ..
다음과 같이 작동합니다. 즉,논리적상위 디렉토리가 아닌물리적상위 디렉터리( cd -P ..
).
macOS의 -manual 에서 ksh
:
기본적으로 디렉토리 이름을 찾을 때 기호 링크 이름은 문자 그대로 처리됩니다. 이는
-L
옵션과 동일합니다. 이-P
옵션을 사용하면 디렉터리를 결정할 때 기호 링크가 확인됩니다.-L
또는-P
명령줄 의 마지막 인스턴스 에 따라 사용되는 방법이 결정됩니다.