Linux

如何使用 file 命令找到最終的執行檔路徑?

  • December 24, 2021

我使用的是 Ubuntu 20.04,我通常需要找到給定命令的最終可執行路徑。我們awk舉個例子:

file $(which awk)
# Output: /usr/bin/awk: symbolic link to /etc/alternatives/awk

file /etc/alternatives/awk
# Output: /etc/alternatives/awk: symbolic link to /usr/bin/gawk

我的問題是:

是否有一個命令(或命令的標誌file)將直接返回給定命令的最終路徑?在上面的範例中,我希望它返回gawk

謝謝

您可以使用readlink

$ readlink -f -- "$(which awk)"
/usr/bin/gawk

來自man readlink

-f, –canonicalize 通過遞歸跟踪給定名稱的每個組件中的每個符號連結進行規範化;除了最後一個組件之外的所有組件都必須存在

我發現了另一個命令realpath

realpath -- "$(which awk)"
#Output: /usr/bin/gawk

引用自:https://unix.stackexchange.com/questions/683661