等你找到了
cat some-symlink-to-some-real-file
它显示的是真实的文件的内容,而不是符号链接本身的内容。有办法看到里面到底是什么吗?
vxbzzdmp1#
ls -l命令将向您显示:
ls -l
$ ls -l foo lrwxrwxrwx 1 user group 11 2010-12-31 19:49 foo -> /etc/passwd
或者readlink command:
readlink
$ readlink foo /etc/passwd
因此,符号链接foo指向路径/etc/passwd。
foo
/etc/passwd
whitzsjs2#
您可以调用readlink(2)函数,该函数将把链接到的名称放入缓冲区。请注意,结果有一个长度(存储在返回值中),而不是以NULL结尾。所以如果你想把它作为一个字符串使用,你自己附加一个NUL。大多数高级/脚本语言,如perl或python,将提供一个readlink Package 器,转换为通常的语言适当的字符串类型,所以你不会被诸如NUL-termination之类的细节所困扰。
readlink(2)
xt0899hw3#
关于手册页http://man7.org/linux/man-pages/man7/symlink.7.html,symlink是常规文件(带有特殊标志),其内容中包含目标路径。因此,您可以复制符号链接到FAT分区,并在那里读取它的内容。
oogrdqng4#
试试看
find . -type l -exec ls -la {} \;
gk7wooem5#
参见下面的ls -l结果。每个链接的大小就是存储原始文件名所需的字节数。甚至连最后的NUL都没有,正如@BenVoigt提到的那样。当然,它不是文件的绝对路径。
5条答案
按热度按时间vxbzzdmp1#
ls -l
命令将向您显示:或者
readlink
command:因此,符号链接
foo
指向路径/etc/passwd
。whitzsjs2#
您可以调用
readlink(2)
函数,该函数将把链接到的名称放入缓冲区。请注意,结果有一个长度(存储在返回值中),而不是以NULL结尾。所以如果你想把它作为一个字符串使用,你自己附加一个NUL。
大多数高级/脚本语言,如perl或python,将提供一个readlink Package 器,转换为通常的语言适当的字符串类型,所以你不会被诸如NUL-termination之类的细节所困扰。
xt0899hw3#
关于手册页http://man7.org/linux/man-pages/man7/symlink.7.html,symlink是常规文件(带有特殊标志),其内容中包含目标路径。因此,您可以复制符号链接到FAT分区,并在那里读取它的内容。
oogrdqng4#
试试看
gk7wooem5#
参见下面的
ls -l
结果。每个链接的大小就是存储原始文件名所需的字节数。甚至连最后的NUL都没有,正如@BenVoigt提到的那样。当然,它不是文件的绝对路径。