我需要创建(大量)文件,其唯一目的是通过它们的存在来表示布尔条件。这些文件没有内容,它们的访问/模式时间或所有权无关紧要。只有他们的存在才重要。
我认为最便宜,最快捷的方法是在文件系统中创建一个固定目标的硬链接。
硬链接最大计数(我认为在ext4上为64000)有一点不便,但我可以通过编写循环来使用变量目标来解决这个问题。
是否有更简单的方法,也许使用硬链接以外的东西来做我想做的事情?
感谢。
答案 0 :(得分:1)
Maildir format是有用的Unix模式的绝佳参考。如果您的标记引用其他文件或目录,则可以将它们嵌入文件名本身,因为标记将添加到Maildirs中的邮件文件中。添加和删除标志非常强大,因为文件重命名在POSIX中是原子的,即使在重新启动时也是如此。它还避免了标记文件的额外i节点,并且与原始硬链接解决方案一样节省空间。
例如,如果有somefile
,然后创建一个空的somefile.marker
,只需将somefile
重命名为somefile:M
即可。要删除标记,只需将somefile.marker
重命名为somefile:M
,而不是删除somefile
。对目录也可以这样做。