Linux下,如果某些程序启动的时候没有加上绝对路径,直接在当前目录用“./程序名 参数表”的方式启动的话,使用ps或者top命令查看后台进程的时候,显示的Comand栏也只是“./程序名 参数表”的形式,为了找到该程序的绝对路径,想必大家最先想到的是用find命令全盘搜索,但是这样做的代价太大,而且当有多个同名文件时还不一定能区分开来,这里教大家一个更简单有效的办法。
因为任何一个程序启动以后,Linux系统会为其分配一个ID,即我们熟悉的PID,称为进程号,与此同时,系统会在/proc目录下为其创建一个独立的文件夹,文件夹以PID命名,在该文件夹内保存着该进程运行相关的详细信息,有兴趣的朋友可以进到这个目录下好好研究研究,不过今天的重点是获得该进程的绝对路径。在该目录下有一个名为exe的文件,像Windows系统下的可执行文件,这其实是一个符号链接(类似于Windows下的快捷方式),它指向该进程对应程序的绝对路径。用file命令或ls命令查看该符号链接的属性即可获取它所指向的绝对路径。
ls -l /proc/PID/exe file /proc/PID/exe
将PID替换为你想查看的进程号即可,注意两条命令都需要root权限运行,Ubuntu下加sudo即可。
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。
😛 哈哈,你的鱼都快被喂撑着了
嘿嘿,欢迎有空过来常来喂一下哦 😛