57

当你这样做

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

它显示的是真实文件的内容,而不是符号链接本身的内容。有没有办法查看其中的实际内容?

4

4 回答 4

68

ls -l命令将向您显示:

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

readlink命令

$ readlink foo
/etc/passwd

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

于 2011-01-01T00:50:11.757 回答
9

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

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

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

于 2011-01-01T01:27:16.713 回答
3

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

于 2015-03-22T12:05:05.647 回答
1

尝试

find . -type l -exec ls -la {} \;
于 2011-01-01T00:47:11.567 回答