remove(rm) 命令的删除顺序

remove(rm) 命令的删除顺序

Redhat Linux 5.8 NFS 安装到 NetApp 存储。

我知道 rm -rf 非常危险,但我正在调查一个问题,用户触发了该命令,但它在执行过程中被停止了。现在我正在评估损失,想知道它是如何遍历目录的。我尝试查看 rm 的源代码,但无法确定它是如何确定删除顺序的。

我一直在社区中搜索,看到了一些关于此问题的帖子,但似乎没有人知道答案。

谢谢,

答案1

一个实用的方法是创建一些测试用例并查看一下。

如果你看看实际代码这可能取决于项目的阅读顺序xfts_open/fts_read

实际执行遍历和删除的函数似乎是rm_fts。该函数实际上有一个注释,指出:

对于 fts 遇到的每个文件系统对象,都会调用一次此函数。fts 执行深度优先遍历。

此外,发行版可能会对这些组件进行多次更改。因此,您可能需要单独检查发行版的实际用途/功能。

相关内容