在unix上创建标记文件的最便宜的方法

问题描述:

我需要创建(大量)文件,其唯一目的是通过它们的存在来表示布尔条件。这些文件没有内容,并且它们的访问/ mod时间或所有权不重要。只有他们的存在重要。在unix上创建标记文件的最便宜的方法

我想最便宜最快的方法是创建一个硬链接到文件系统中的某个固定目标。

硬链接最大数量(= ext4上的= 64000,我认为)存在一些小的不便,但我可以通过编写一个循环来使用变量目标来解决这个问题。

有没有更简单的方法,也许使用硬链接以外的东西来做我想要的?

谢谢。

+0

为什么你需要创建文件?你不能使用像红黑二叉树这样的数据结构吗? – Marichyasana

Maildir format是有用的Unix模式的一个很好的参考。如果您的标记引用其他文件或目录,则可以将它们嵌入文件名中,因为标记将添加到Maildirs中的邮件文件中。由于文件重命名在POSIX中是原子级的,因此即使在重新启动时也可以添加和删除标志。它还避免了标记文件的额外i节点,并且与原始硬链接解决方案一样具有空间效率。

作为一个例子,具有insteat somefile然后创建空somefile.marker的,只是重命名somefilesomefile:M。要删除标记,而不是删除somefile.marker,只需将somefile:M重命名为somefile即可。目录也可以做同样的事情。

+0

对不完整的答案抱歉。我正指着你说:“我可以在什么信息?”部分,其中介绍了如何向邮件文件添加标记。不在唯一的文件名。 – jop