一个文件的硬链接数量是否有限制?是否在任何地方指定?Linux的安全限制是什么?对于其他POSIX系统呢?
一个文件的硬链接数量是否有限制?是否在任何地方指定?Linux的安全限制是什么?对于其他POSIX系统呢?
Answers:
Posix要求操作系统理解硬链接的概念,但不要求硬链接实际上可以在任何特定情况下使用。您可以通过调用找出在特定位置允许多少个硬链接(这可能因文件系统类型而异)。该下限()是8,不过这是相当无意义反正可以报告许多其他错误(拒绝授权,磁盘已满,...)。pathconf(filename, _PC_LINK_MAX)
_POSIX_LINK_MAX
link()
该stat
结构将链接计数存储在type字段中nlink_t
,因此此字段的类型为您的系统设置了上限。但是您很有可能永远无法达到目标:nlink_t
在许多文件系统中通常只有32位但只有16位(Linux源码中的快速grep显示ext [234],NTFS,UFS和XFS在内核数据结构中使用16位链接计数。
查看linux内核源代码(* include / linux / ext3_fs.h *)中的ext3 inode结构磁盘格式,该格式将链接计数列为16位数字
struct ext3_inode {
... snip ...
__le16 i_links_count; /* Links count */
}
我猜这意味着ext3文件系统最多可以有65535个链接。
我还没有检查其他文件系统的值。