具有相同inode的OS符号链接

时间:2017-04-14 00:04:07

标签: linux file operating-system symlink

我想知道我们如何拥有2个符号链接(不是2个常规文件或硬链接和符号链接,但是2个符号链接)具有相同的inode和相同的inode点。我尝试了很多硬链接和符号链接以及常规文件的组合,我可以有两个具有相同inode和相同inode点的文件,但它们都不是符号链接。

N.B:我在python3下使用os库来获取所有信息和" os.path.islink"知道它是否是符号链接,以及" os.stat" " os.lstat"

非常感谢。

2 个答案:

答案 0 :(得分:0)

您必须确保,用于制作硬链接的工具不会遵循您尝试链接的符号链接。在命令行上,您可以这样做,例如:

cp -l -P symlink1 symlink2

这些选项意味着:

   -l, --link
          hard link files instead of copying
   -P, --no-dereference
          never follow symbolic links in SOURCE

在Python starting from version 3.3中,您可以执行以下操作:

os.link ("symlink1", "symlink2", follow_symlinks = False)

答案 1 :(得分:0)

感谢您的所有答案,但实际上我解决了问题,我可以有两个文件具有相同的inode和相同的inode点,

我需要创建文件符号链接的硬链接(例如文件f1)

ln symlinkf1 hardlink_ofsymlinkf1

然后我得到inode_symlink1 = inode_hardlink_ofsymlinkf1(1)

和inodepoint_symlinkf1 = inodepoint_hardlink_ofsymlinkf1(2)

但是(1)= / =(2)

这只适用于Linux,我将这两个文件都作为软链接(使用os.islink(file_name)= True),并且奇怪的是它不能在Mac OS上运行。