gpt4 book ai didi

c++ - 当链接数为 2 时,有没有办法完全删除 inode?

转载 作者:搜寻专家 更新时间:2023-10-31 01:57:27 24 4
gpt4 key购买 nike

目前我的数据被组织在一个有缓存目录的卷中(所有文件都是首先创建或传输的)。之后,卷上有合适的目录,在它们的子目录中,包含硬链接(hard link)到缓存中文件的文件。这样做是为了可以在多个目录中多次硬链接(hard link)相同的 inode(文件)。

现在,当尝试清理卷时,我递归地遍历目录(而不是缓存)并根据特定标准取消链接文件(这基本上将缓存条目的 inode 计数减少 1)。当我删除最后一个硬链接(hard link)(即将计数从 2 减少到 1)时,有没有办法直接删除缓存条目。这样我就不必手动解析整个缓存目录来清除其中的任何 inode ,它们的链接数仅为 1。

我查看了取消链接/删除功能,但找不到任何具体用途。是否有一些内部处理此问题的清除算法,然后我可以尝试实现它。

如有任何帮助,我们将不胜感激。期待及时回复。

最佳答案

我看到了this以及其他一些指导您如何从 shell 中删除所有硬链接(hard link)的地方(使用 find -samefile 并在每个文件上调用 remove)。您可以通过系统调用它,尽管有些人可能不赞成这样做)。

关于c++ - 当链接数为 2 时,有没有办法完全删除 inode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5632739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com