一个文件的硬链接数量是否有限制?在任何地方都有说明吗?Linux的安全限制是什么?其他POSIX系统呢?
发布于 2011-01-10 19:23:17
Posix要求操作系统理解硬链接的概念,而不是硬链接实际上可以在任何特定情况下使用。您可以通过调用pathconf(filename, _PC_LINK_MAX),了解在特定位置允许多少硬链接(这可能因文件系统类型而异)。最小限度 (_POSIX_LINK_MAX)为8,但这是相当没有意义的,因为link()仍然可以报告许多其他错误(权限被拒绝,磁盘已满,…)。。
stat结构将链接计数存储在nlink_t类型的字段中,因此该字段的类型为您的系统提供了上限。但是,您很有可能永远无法达到这个程度:32位nlink_t在许多文件系统中通常只有16位( Linux源代码中的快速grep显示ext234、NTFS、UFS和XFS在内核数据结构中使用16位链接计数)。
发布于 2011-01-10 17:46:57
发布于 2011-01-10 17:55:02
查看linux内核源代码中的ext3 inode结构磁盘格式(*include/ext3 3_fs.h*),其中列出链接数为16位数。
struct ext3_inode {
... snip ...
__le16 i_links_count; /* Links count */
}我猜这意味着ext3文件系统可以有多达65535个链接。
我还没有检查其他文件系统的值。
https://unix.stackexchange.com/questions/5629
复制相似问题