프로세스는 논리적 및 물리적 작업 디렉터리를 상속합니까?

프로세스는 논리적 및 물리적 작업 디렉터리를 상속합니까?

프로세스가 시작되면 상위 프로세스의 작업 디렉터리를 상속한다는 것을 알고 있습니다. 그러나 논리적 작업 디렉터리와 실제 작업 디렉터리를 모두 상속합니까, 아니면 실제 작업 디렉터리만 상속합니까?

답변1

글쎄요. "논리적" 작업 디렉터리는 환경 변수에 포함되어 있습니다 PWD.environ(7)"일부 쉘에 의해 설정"되었다고 말하므로 분명히 응용 프로그램에 따라 다릅니다. 또 다른 질문은 다른 프로그램이 이를 읽는지 여부입니다.

/tmp$ ln -s ~ link  
/tmp$ cd link  
/tmp/link$ bash -c "pwd"
/tmp/link
/tmp/link$ zsh -c "pwd" 
/home/itvirta
/tmp/link$ dash -c "pwd"
/tmp/link

Bash는 dash이를 신뢰하는 것 같지만 zsh그렇지 않습니다(내 시스템에서는 구성 가능하다고 확신합니다).

답변2

이것cwd 가져오기시스템 호출은 다음과 같은 물리적 경로 이름을 반환합니다.POSIX규제

경로 이름에는 점, 점-점 또는 기호 링크 구성 요소가 포함되어서는 안 됩니다.

Linux는 CWD를 전달하기 위해 이름보다 낮은 수준의 메커니즘을 사용하는 것으로 보입니다. 다른 프로그램이 디렉터리를 CWD로 사용하는 동안 디렉터리 이름을 바꿀 수 있기 때문입니다.

관련 정보