Command-Line
如何通過多個符號連結找到原始文件?
我遇到過符號連結指向其他符號連結的情況,這導致我不得不執行多個 ls 命令來嘗試跟踪基本文件的儲存位置。例如,如果我想知道在 centos 上執行的 java 程序的位置,我通常從 /bin/java 開始,並且必須深入 3-4 個符號連結才能找到實際文件的位置。
是否有一個簡單的 clean 命令可以跟踪所有符號連結,直到找到一個真實文件並給我基本文件的位置?
使用
realpath
,它將展開所有符號連結,直到一個文件目標。例如,對我來說:
> ls -al /usr/bin/java lrwxrwxrwx 1 root root 22 Jul 13 2019 /usr/bin/java -> /etc/alternatives/java > realpath /usr/bin/java /usr/lib64/jvm/java-11-openjdk-11/bin/java
也
readlink
單獨給出直接目標,而readlink -f
將給出最終文件:> readlink /usr/bin/java /etc/alternatives/java > readlink -f /usr/bin/java /usr/lib64/jvm/java-11-openjdk-11/bin/java