2014-04-01 46 views
3

在某處搜索後終於沒有得到我想要的。如何從當前二進制運行的地方找到路徑?

我正在使用linux系統的一些嵌入式主板。許多用戶通過telnet來訪問它。因此,每個用戶都假設在某處複製了一些二進制文件,並執行了如./binary。因此,我可以看到這個過程只是通過ps命令運行,但從它運行的位置我不知道。

某處發現,使用which命令,但根據我的理解(如果我沒有錯)which命令只查找該二進制文件的路徑,無論它是否正在執行。

如果多個用戶在不同路徑中複製相同的二進制文件會怎麼樣?

也看了另一個解決方案使用readlink但我的目標板支持有限的busybox binary。所以readlink不在那裏。

像一個不存在的,因爲custome的Linux

file /proc/"proess id"/exe但這裏file命令在我的船上只包含有限的功能和二進制另一種解決方案。

那麼還有其他解決方案嗎?

+2

您可以使用'ls -l'並在' - >'後面提取一個組件 – user3159253

+1

要關閉投票人:它不是關於工具。我寧願關閉它作爲脫離主題,對於http://unix.stackexchange.com/ –

+0

@ user3159253'readlink'會比解析'ls'輸出更好... – twalberg

回答

2

嘗試ls -l /proc/"proess id"/exe。來自GNU coreutils的ls實用程序顯示與-l選項的鏈接,但我沒有關於lsbusybox的確切信息。

+0

準確地說,工作正常...謝謝很多。 –

+0

'readlink/proc//exe'會比解析'ls'輸出更好... – twalberg

+0

...如果會有'readlink'。 – osgx

相關問題