在Linux服务器中使用Pwdx查找进程的当前工作目录
你知道 "pwd "命令吧?pwd命令(Present Working Directory的缩写)用于打印当前工作目录。那 "pwdx "呢?pwdx命令用于报告当前进程的工作目录。在本文中,我们将看到如何在Linux服务器中使用pwdx命令找到进程的当前工作目录。
在Linux服务器中使用Pwdx查找进程的当前工作目录
pwdx命令的一般用法如下:
$ pwdx
为了方便演示,我们来测试找到firefox进程的工作目录。
首先,我们需要找到Firefox的进程ID。为此,请使用“ ps”命令,如下所示:
$ pgrep firefox
5238
firefox的PID是5238。现在,找到PID 5238的工作目录,如下所示:
$ pwdx 5238
样本输出:
5238: /home/sk
或者,您可以将两个命令组合为一个命令,并找到如下所示的firefox进程的当前工作目录:
$ pwdx $(pgrep firefox)

如您所见,firefox进程的当前工作目录为/ home/sk。这样,我们可以轻松地找出进程当前在哪个目录上运行!请注意,这些命令不会显示从何处调用流程,而仅显示当前位置。
如果要打印多个进程的当前目录,请使用空格分隔PID,如下所示:
$ pwdx 5238 21126
5238: /home/sk
21126: /home/sk
有关更多详细信息,请参见手册页。
$ man pwdx
扩展:使用ls,lsof和readlink命令查找Linux进程的当前工作目录
如果由于某些原因无法使用pwdx,则以下命令可以为您提供Linux进程的工作目录:
ls
lsof
readlink
首先,使用pgrep命令找到进程的PID:
$ pgrep firefox
5238
接下来,使用“ ls”命令找到进程的当前工作目录,如下所示:
$ ls -l /proc/5238/cwd
在此,cwd表示当前工作目录。
样本输出:
lrwxrwxrwx 1 sk sk 0 Jun 17 15:31 /proc/5238/cwd -> /home/sk
要使用“ lsof”命令查找firefox进程的当前工作目录,请运行:
$ lsof -p 5238 | grep cwd
或者,将两个命令组合在一起,并获得以下单行代码的结果:
$ lsof -p $(pgrep firefox) | grep cwd
样本输出:
firefox 5238 sk cwd DIR 8,1 4096 4325378 /home/sk
使用“ readlink”命令查找firefox进程的当前工作目录,运行:
$ readlink -e /proc/5238/cwd/
/home/sk
有关详细信息,请参见手册页:
$ man ls
$ man lsof
$ man readlink