Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 具有相同inode的操作系统符号链接_Linux_File_Operating System_Symlink - Fatal编程技术网

Linux 具有相同inode的操作系统符号链接

Linux 具有相同inode的操作系统符号链接,linux,file,operating-system,symlink,Linux,File,Operating System,Symlink,我想知道如何使用相同的inode和相同的inode点创建2个符号链接(不是2个常规文件或硬链接和符号链接,而是2个符号链接)。我尝试了很多硬链接、符号链接和常规文件的组合,我可以有两个具有相同inode和相同inode点的文件,但它们不是都是符号链接 注意:我使用python3下的os库获取所有信息和“os.path.islink”以了解它是否是符号链接,以及“os.stat”和“os.lstat” 非常感谢。您必须确保用于制作硬链接的工具没有遵循您尝试链接的符号链接。在命令行中,您可以这样做,

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

注意:我使用python3下的os库获取所有信息和“os.path.islink”以了解它是否是符号链接,以及“os.stat”和“os.lstat”


非常感谢。

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

cp -l -P symlink1 symlink2
这些选择意味着:

   -l, --link
          hard link files instead of copying
   -P, --no-dereference
          never follow symbolic links in SOURCE
在Python中,可以执行以下操作:

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

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

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

然后我得到symlinkf1(1)的inode\u symlink1=inode\u hardlink\u

而inodepoint_symlinkf1=symlinkf1(2)的inodepoint_hardlink_

但是(1)=/=(2)


这只有在Linux中才能很好地工作,在Linux中我将两个文件都作为软链接(使用os.islink(file_name)=True),奇怪的是,它在Mac os上不起作用

为什么要这样做?不能有两个符号链接使用相同的inode,但它们当然可以引用相同的inode。编程问题也是如此,而不是关于Linux设计的问题。请尝试SuperUser.com或unix.stackexchange.com。使两个名称指向同一inode的方法是使用
link()
系统调用。但是,如果源文件是一个符号链接,它将跟随它到达其目标,它不会使新名称引用与符号链接相同的inode。因此,除非您直接操作文件系统,否则无法执行您想要的操作。
ln symlinkf1 hardlink_ofsymlinkf1