Answers:
在Unix中,所有普通文件都是硬链接。Unix(和大多数(全部)文件系统)中的硬链接是对所谓的的引用inode
。所述inode
具有基准计数器,当你有一个“链接”到该文件(其是正常工作方式)对置为1。当你创建第二,第三,第四,等链路时,计数器递增(增加)的每个时间一分。当您删除(rm
)链接时,计数器将减一(减少)。如果链接计数器达到0,则文件系统将删除inode
并将该空间标记为可使用。
简而言之,只要不删除最后一个链接,该文件就会保留。
Edit:
即使删除最后一个链接,该文件也将保留。这是确保文件中包含的数据安全性不可被任何其他进程访问的方法之一。仅当数据具有元数据中给定的0个链接并且未被任何进程使用时,才从文件系统中完全删除数据。
到目前为止,此恕我直言是了解硬链接(及其与软链接的区别)的最简单方法。
unlink
编辑最后一个链接时打开文件的情况。
/proc
是一个单独的(虚拟)文件系统。
unlink()
当我开始在1990年代上半年开始在MS-DOS上使用C编程时,调用删除文件一直困扰着我。:)
测试比我想象的要容易:我创建了一个文本文件,然后将其硬链接。删除硬链接并不会删除它是硬链接到文件,并且是有联系的遗体它是文件。
unlink()
。