符号链接后面有什么?

符号链接后面有什么?,第1张

符号链接后面有什么?

它不是关于UNIX / Linux,而是关于文件系统的实现-但是,是的,Unix /
Linux在内核级别使用inode,而文件系统的实现则具有inode(至少是虚拟的inode)。

通常,符号链接只是文件(顺便说一句,目录也是文件),它们具有:

  • 告诉系统此文件的“ inode”中的 标志
    file-type
    是“符号链接”
  • file-content:目标的路径-换句话说:符号链接只是一个文件,其中包含在inode中带有标志的文件名。

虚拟文件系统也可以具有符号链接,因此,请检查FUSE或其他文件系统实现源。(ext2 / ext3 / ufs..etc)

所以,

答案是UNIX / Linux中的inode吗?

取决于文件系统的实现,但是可以,通常inode包含“文件类型”(以及所有者,访问权限,时间戳,大小,数据块的指针)。有些文件系统没有

inode
(在物理实现中),但是只有“虚拟inode”用于维护与内核的兼容性。

如果是,那么目标和链接的索引节点号是否相同?

没有 。通常,符号链接是一个具有自己的索引节点的文件(具有文件类型,自身的数据块等)。

如果是,链接inode可以具有与目标inode不同的权限(如果存在)吗?

这是关于 如何 处理符号链接文件的。通常,内核不允许更改符号链接权限-
符号链接始终具有默认权限。您可以编写自己的文件系统,以允许对符号链接使用不同的权限,但是您会遇到麻烦,因为像

chmod
这样的通用程序不会自行更改符号链接的权限,因此制作这样的文件系统将毫无意义。

要了解硬链接和符号链接之间的区别,您应该首先了解目录。

目录是告诉内核,“处理这个文件作为地图文件(通过在inode的标志区分)

file-name
inode_number
”。硬链接只是映射到same的文件名
inode
。因此,如果目录文件包含:

file_a: 1000file_b: 1001file_c: 1000

上面的意思是在这个目录中有3个文件:

  • 由inode 1000描述的file_a
  • 由inode 1001和
  • FILE_C由inode的1000(所以这是一个硬链接再次描述 FILE_A,不是硬连接 -因为它是不可能告诉这名来到第一个-它们是相同的FILE_A)。

This is the main difference to symlinks, where the inode of

file_b
(inode
1001) could have content “file_a” and a flag meaning “this is a symlink”.
In this case,
file_b
would be a symlink pointing to
file_a
.



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4935821.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存