在 Linux 中查找正在运行的进程的当前工作目录
简介
在 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 系统上处理进程时,能够找到进程的当前工作目录都是非常有用的工具。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

