/var/mail/{username} = /Users/{username}인 이유는 무엇입니까?

/var/mail/{username} = /Users/{username}인 이유는 무엇입니까?

~나의 기본적인 질문은 왜 이 두 경로가 모두 홈(즉, ) 을 가리키는가 하는 것입니다 . 동일한 집을 가리키는 걸까요, 아니면 중복된 걸까요?

중복된 것인지 의심스럽습니다. 그렇지 않은 경우 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디렉토리 를 조사하면 lsApple에서 수행한 심볼릭 링크가 있는지 알 수 있을 것입니다.

답변2

macOS에서 (당신이 언급한 이후로 이것이라고 추측합니다 /Users) 은 사용자의 형식이 지정된 받은 편지함 사서함 /var/mail/username이며 동일한 사용자의 홈 디렉터리입니다.mboxusername/Users/username

/var/mail/username수정되지 않은 일반적인 macOS 설치에서는~ 아니다사용자의 홈 디렉토리에 대한 심볼릭 링크이거나 /Users/username에 대한 링크 가 아닙니다 /var/mail/username.


cd ..기본적으로 cd -L ..다음과 같이 작동합니다. 즉,논리적상위 디렉토리가 아닌물리적상위 디렉터리( cd -P ..).

macOS의 -manual 에서 ksh:

기본적으로 디렉토리 이름을 찾을 때 기호 링크 이름은 문자 그대로 처리됩니다. 이는 -L옵션과 동일합니다. 이 -P옵션을 사용하면 디렉터리를 결정할 때 기호 링크가 확인됩니다. -L또는 -P명령줄 의 마지막 인스턴스 에 따라 사용되는 방법이 결정됩니다.

관련 정보