在 Linux 中查找正在运行的进程的当前工作目录

linuxoperating systemopen source更新于 2026/1/25 7:37:17

简介

在 Linux 系统上处理进程时,一项基本任务是确定进程的当前工作目录。当前工作目录,也称为"当前目录"或"当前工作文件夹",是进程运行并与文件交互的目录。了解进程的当前工作目录可用于多种用途,例如调试、了解进程的运行环境,或仅监视进程的活动。

在本文中,我们将讨论如何在 Linux 上查找正在运行的进程的当前工作目录。我们将介绍几种可用于完成此任务的方法,包括使用 ps 命令、lsof 命令和 /proc 文件系统。

使用 ps 命令

ps 命令是一个标准命令行实用程序,用于显示系统上当前正在运行的进程的信息。ps 可以显示的信息之一是进程的当前工作目录。要使用 ps 查找进程的当前工作目录,我们可以使用以下命令 -

$ ps -o cwd -p PID

其中 PID 是我们要查找其当前工作目录的进程的 ID。例如,要查找 PID 为 1234 的进程的当前工作目录,我们将使用以下命令 -

$ ps -o cwd -p 1234

"-o"选项允许我们指定 ps 的输出格式,而 cwd 参数告诉 ps 显示进程的当前工作目录。

以下是使用 ps 命令查找进程当前工作目录的示例 -

$ ps -o cwd -p 1234
CWD
/home/user/process

在此示例中,PID 为 1234 的进程的当前工作目录为/home/user/app.

使用 lsof 命令

在 Linux 上查找进程当前工作目录的另一种方法是使用 lsof 命令。lsof 代表 "打开文件列表",它是一个命令行实用程序,用于显示系统中进程当前打开的文件信息。lsof 可以显示的信息之一是进程的当前工作目录。

要使用 lsof 查找进程的当前工作目录,我们可以使用以下命令 -

$ lsof -a -d cwd -p PID

其中 PID 是我们要查找其当前工作目录的进程的 ID。例如,要查找 PID 为 1234 的进程的当前工作目录,我们可以用以下命令:-

$ lsof -a -d cwd -p 1234

-a 选项指示 lsof 对以下选择条件进行"与"运算,"-d"选项指定我们要显示的描述符类型。在本例中,cwd 描述符代表进程的当前工作目录。

以下是使用 lsof 命令查找进程当前工作目录的示例:-

$ lsof -a -d cwd -p 1234

使用 /proc 文件系统

在 Linux 上查找进程当前工作目录的另一种方法是使用 /proc 文件系统。/proc 文件系统是一个虚拟文件系统,它提供了系统上运行的内核和进程的视图。它为每个正在运行的进程包含一个目录,每个目录都包含有关该进程的信息,例如其环境、打开的文件和当前工作目录。

要使用 /proc 文件系统查找进程的当前工作目录,我们可以采用以下步骤 -

找到我们要查找当前工作目录的进程的进程 ID。我们可以使用 ps 或 lsof 命令来执行此操作,如前几节所述。

切换到进程的 /proc 目录。通过输入以下命令即可完成:

$ cd /proc/PID

其中 PID 是我们要查找其当前工作目录的进程的 ID。

显示 cwd 符号链接 的内容。/proc 目录中进程的 cwd 符号链接指向该进程的当前工作目录。要查看"cwd"符号链接的内容,我们可以使用以下命令 -

$ readlink cwd

以下示例使用 /proc 文件系统查找进程的当前工作目录 -

$ cd /proc/1234
$ readlink cwd
/home/user/process

在此示例中,PID 为 1234 的进程的当前工作目录为 /home/user/app。

结论

在本文中,我们讨论了如何在 Linux 上查找正在运行的进程的当前工作目录。我们介绍了三种不同的方法:使用 ps 命令、lsof 命令和 /proc 文件系统。每种方法都有其优缺点,具体方法取决于当前业务的具体要求和限制。无论使用哪种方法,在 Linux 系统上处理进程时,能够找到进程的当前工作目录都是非常有用的工具。


相关文章


有用资源