$HOME
이 아닌 다른 디렉토리에 cd
이 있고 exec bash
을 실행하면 새로운 bash가 이전 쉘의 작업 디렉토리에서 시작됩니다.exec'ed 쉘은 어떻게 귀하의 cwd를 알고 있습니까?
새 bash는 이전 작업 디렉토리가 무엇인지 어떻게 알 수 있습니까?
$HOME
이 아닌 다른 디렉토리에 cd
이 있고 exec bash
을 실행하면 새로운 bash가 이전 쉘의 작업 디렉토리에서 시작됩니다.exec'ed 쉘은 어떻게 귀하의 cwd를 알고 있습니까?
새 bash는 이전 작업 디렉토리가 무엇인지 어떻게 알 수 있습니까?
모든 프로세스가 상위 작업 디렉토리를 상속하는 것처럼 작업 디렉토리를 상속합니다.
pwd
프로그램의 작동 원리는 무엇이라고 생각하십니까? getcwd
시스템 호출로 자신의 작업 디렉토리를 가져오고 부모로부터 상속받습니다.
프로세스 태스크 구조에는 상속 된 현재 작업 디렉토리가 있습니다. 리눅스에서는 다음과 같이 볼 수 있습니다 :
새 쉘을 만들면 상위 프로세스의 현재 작업 디렉토리가 상속됩니다.
작업 디렉토리은 운영 체제에서 제공하는 속성으로, 원하는지 여부에 관계없이 프로세스에 기인합니다.
다른 프로세스 (상위 프로세스)에 의해 생성 된 프로세스 (하위 프로세스)는 해당 프로세스에 대한 개입없이 생성 프로세스의 작업 디렉터리를받습니다.
작업 디렉토리를 디자인의 일부로 사용하는 프로세스 외에도 프로세스가 충돌 할 때 코어 덤프의 위치를 결정하는 것과 같은 작업을 위해 OS에서 사용할 수도 있습니다.