一个exec'ed shell如何知道你的cwd?

时间:2012-11-02 02:10:20

标签: bash shell unix

如果cd$HOME以外的某个目录并运行exec bash,新bash将从前一个shell的工作目录开始。

新bash如何知道以前的工作目录是什么?

3 个答案:

答案 0 :(得分:3)

流程任务结构具有继承的当前工作目录。在Linux上,你可以这样看:

ls -l /proc/self/cwd

创建新shell时,它会继承父进程的“当前工作目录。

答案 1 :(得分:0)

它继承了它的工作目录,就像每个进程都继承了它的父工作目录一样。

您如何看待pwd计划有效?它只是通过getcwd系统调用获得自己的工作目录,它从父代继承。

答案 2 :(得分:0)

工作目录是操作系统提供的属性,无论是否需要,都归因于进程。

由另一个进程(父进程)生成的进程(子进程)接收产生进程的工作目录,而不需要任何干预。

除了使用工作目录作为其设计的一部分的过程之外,操作系统还可以使用它来确定进程崩溃时核心转储的位置。