某些编程语言能够区分强引用对象和弱引用对象,以便在所有强引用消失后弱引用对象成为垃圾回收的候选对象。
文件系统上的硬链接(hard link)是否有类似的概念?这是一个理论上的 API:
$ touch A
$ ln --weak A A_hardlink # create a 'weakly referenced' hard link
$ rm A
$ stat A_hardlink # no such file or directory
符号链接(symbolic link)可以给你这个,除了 A 的符号链接(symbolic link)仍然会出现在磁盘上(即使它的底层文件已经消失),而且我想利用直接指向相同 inode 的优势(用于跟踪移动,主文件的重命名等)。有任何文件系统实际上支持这个或类似的东西吗?
最佳答案
否(除非您创建自己的具有此功能的文件系统)。据我所知,所有文件系统中从目录条目到 inode 的所有链接都是强链接。在大多数文件系统中实现弱链接将是一个挑战,因为 inode 不会“记住”指向它的目录条目的位置,但它必须找到所有这些条目,以便在所有强链接都删除后删除它们到 inode 都消失了。
关于macos - 是否可以在文件系统上创建 "weakly referenced"硬链接(hard link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12334204/