为什么 rm 不能删除目录?

为什么 rm 不能删除目录?

要删除目录,您需要使用命令rmdir而不是rm。我了解到 unix 将所有内容视为文件。那么rm无法删除任何类型的文件的原因是什么?

答案1

如果目录不为空,则不应将其“当做文件”删除,原因似乎相当明显:否则,该目录中的文件将不再具有有效路径。这解释了为什么您需要递归删除(-r)或在删除之前检查目录是否为空(rmdir,或者,在 Unix 的某些分支中为rm -d)。

根据维基百科,引用Unix 8 rm 手册页,在某些旧版本的 Unix 中,rm如果目录为空,该命令将会删除目录,因此这更多的是某些 Unix 版本的用户交互的选择,而不是要求。

相关内容