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

时间:2013-09-22 05:23:28

标签: linux file unix marker hardlink

我需要创建(大量)文件,其唯一目的是通过它们的存在来表示布尔条件。这些文件没有内容,它们的访问/模式时间或所有权无关紧要。只有他们的存在才重要。

我认为最便宜,最快捷的方法是在文件系统中创建一个固定目标的硬链接。

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

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

感谢。

1 个答案:

答案 0 :(得分:1)

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

例如,如果有somefile,然后创建一个空的somefile.marker,只需将somefile重命名为somefile:M即可。要删除标记,只需将somefile.marker重命名为somefile:M,而不是删除somefile。对目录也可以这样做。