如何从链接中找到真实文件

UAd*_*ter 6 symbolic-link

ls -l java
lrwxrwxrwx 1 root root 22 2019-02-17 11:37 java -> /etc/anotherLink/java
Run Code Online (Sandbox Code Playgroud)

当我执行 ls -l 时,它会显示文件路径,但该文件也可以是链接。有没有办法显示真实文件的路径?

小智 11

我想你想要的是readlink

readlink -f java
Run Code Online (Sandbox Code Playgroud)

为了找到这个,我问哪个手册页可能适合符号链接。

apropos "symbolic link"
Run Code Online (Sandbox Code Playgroud)

它返回了对 readlink 的引用,所以我使用了手册:

man readlink
Run Code Online (Sandbox Code Playgroud)

我阅读了手册页:

-f, --canonicalize 通过递归跟踪给定名称的每个组件中的每个符号链接来规范化;除了最后一个组件之外的所有组件都必须存在

这是你想要的?


Raf*_*lak 3

尝试使用file命令。

它显示有关给定文件的详细信息(类型、内容格式)

例子:

$ cp -s temp.sh temp2.sh
$ file temp2.sh 
temp2.sh: symbolic link to `temp.sh'
Run Code Online (Sandbox Code Playgroud)

  • 我认为问题是关于多一级链接,例如“一”(链接)->“二”(链接)->“三”(常规文件)以及显示“一”指向“三”的命令。“file one”将显示“one:到“two”的符号链接”,而“readlink -f one”将显示“/abs/path/to/third”。 (2认同)