在某个地方寻找了很久,最终没有得到我想要的。
我正在使用带有Linux系统的嵌入式板卡。许多用户通过 telnet
访问它。所以每个用户都可以将一些二进制文件复制到某个地方并执行,例如 ./binary
。因此,我可以通过简单的 ps
命令看到这个进程正在运行,但我不知道它是从哪里运行的。
在某个地方发现了一个解决方法,使用 which
命令,但据我理解(如果我没有错的话),which
命令只能查找二进制文件的路径,无论它是否正在执行。
如果多个用户在不同的路径中复制了相同的二进制文件呢?
还找到了另一个解决方法,使用 readlink
,但是我的目标板仅支持有限的 busybox binary
,因此没有 readlink
。
还有另一种解决方法,如:
file /proc/"proess id"/exe
但是由于我的板子上有自定义的Linux系统,其中仅包含有限的功能和二进制文件,因此这里没有 file
命令。
那么还有其他解决方法吗?
ls -l
命令,并提取->
后面的组件。 - user3159253readlink
比解析ls
输出更好... - twalberg