删除硬链接副本后文件从 Finder 中消失

删除硬链接副本后文件从 Finder 中消失

好吧,我刚才被吓坏了……我有一个文件夹,里面有一些重要的文件。使用终端,我在另一个文件夹中创建了指向这些文件的硬链接。如下所示:

mkdir test
ln important-files/* test/

一切都很好。我在important-files文件夹中打开了一个 Finder 窗口,然后在终端中决定删除带有硬链接的测试文件夹:

rm -rf test/

现在到了可怕的部分...在important-filesFinder 窗口中,文件开始消失!

事实证明,这只是 Mac OS X 经常出现的“怪现象”。如果我执行 ,文件仍然在那里ls important-files/。但将它们重新放入 Finder 中的唯一方法是执行killall Finder

这到底是怎么回事?为什么会这样?

更新:这是 Mac OS X 10.4 中的错误吗?我似乎在装有 10.5 的 iMac 上遇到的问题没那么可怕...

答案1

OS X 文件系统事件 API 在回调中使用路径,因此这一定是 Finder 犯了愚蠢的错误,将其内部缓存解析为 inode。链接到特定 inode 的路径会消失,因此链接到该 inode 的所有条目都会消失。

相关内容