为什么符号链接的md5校验和等于原始文件

时间:2017-05-24 22:26:28

标签: linux md5sum

我一直在寻找,我无法理解为什么符号链接的md5校验和等于它所指向的文件。据我所知a symbolic link is still a file。鉴于它是空的,我希望符号链接有一个md5的d41d8cd98f00b204e9800998ecf8427e。 (见here

然而在实践中进行测试:

echo Hello World > test
ln -s test test_symlink

然后跑步:

md5deep test test_symlink

收率:

e59ff97941044f85df5297e1c302d260  /tmp/test
e59ff97941044f85df5297e1c302d260  /tmp/test_symlink

有谁知道我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

符号链接对几乎所有文件系统操作都是透明的;这就是它的重点。当您open符号链接时,它实际上会打开目标文件,而它是获取MD5的目标文件的内容。只有readlinklstat(以及更少使用的lchownlutimesopen(..., O_PATH|O_NOFOLLOW))才能“看到”符号链接而不是文件背后。