有没有办法看到符号链接的实际内容?

时间:2011-01-01 00:35:23

标签: linux shell filesystems symlink cat

当你这样做时

cat some-symlink-to-some-real-file

它显示了真实文件的内容,而不是符号链接本身的内容。有没有办法看到它实际上是什么?

4 个答案:

答案 0 :(得分:42)

ls -l命令将显示:

$ ls -l foo
lrwxrwxrwx 1 user group 11 2010-12-31 19:49 foo -> /etc/passwd

readlink command

$ readlink foo
/etc/passwd

因此,符号链接foo指向路径/etc/passwd

答案 1 :(得分:7)

您可以调用readlink(2)函数,该函数会将链接到的名称放入缓冲区。

请注意,结果有一个长度(存储在返回值中)而不是NUL终止。因此,如果您想将其用作字符串,请自行添加NUL。

大多数高级/脚本语言(如perl或python)将提供一个readlink包装器,可以转换为通常的语言相应的字符串类型,因此您不会被NUL终止等细节所困扰。

答案 2 :(得分:2)

关于手册页http://man7.org/linux/man-pages/man7/symlink.7.html符号链接是常规文件(带有特殊标志),其内容中包含目标路径。所以你可以将符号链接复制到FAT分区并在那里读取内容。

答案 3 :(得分:1)

尝试

find . -type l -exec ls -la {} \;