Answers:
该/proc
方法是检查exe
在对应的PID的目录链接。
让我们举一个例子update-notifier
:
查找pid,在此示例中为15421:
egil@gud:~$ ps x | grep update-notifier
2405 pts/4 S+ 0:00 grep update-notifier
15421 ? Sl 0:00 update-notifier
查找符号链接:
egil@gud:~$ file /proc/15421/exe
/proc/15421/exe: symbolic link to `/usr/bin/update-notifier'
也许which
正是您想要的。例如,在我的系统上
which firefox
退货
/usr/bin/firefox
which
很酷,但是它只返回$ PATH中的程序。如果我运行RandomProgramIDownloadedToErisKnowsWhere.bin
,这将没有太大用处。
如果您有可用的进程ID,则可以使用:
readlink -f /proc/$pid/exe
(替换$pid
为进程的进程ID)
如果该过程不属于您,则必须放在sudo
它前面。
确定命令位置的示例firefox
:
输出ps ax -o pid,cmd | grep firefox
:
22831 grep --color=auto firefox
28179 /usr/lib/firefox-4.0.1/firefox-bin
28179
是进程ID,因此您必须运行:
readlink -f /proc/28179/exe
输出:
/usr/bin/firefox
/proc/$pid/exe
,如果意外删除了二进制文件,则可以使用以下方法进行恢复:dd if=/proc/$pid/exe of=restored-binary