0

我正在测试 php 中的 Unlink 以删除一些文件。这些文件确实被删除了,我再也看不到它们了,但令人惊讶的是我的硬盘空间从未下降过。

我想完全删除一个文件。

4

4 回答 4

7

文件有多大,您如何检查可用空间?如果您取消链接到文件的 LAST 链接,取消链接文件只会在驱动器上腾出更多可用空间。请记住,在 Unix 系统上,单个文件可以存在于多个不同的位置,每个位置都有自己唯一的文件名 - 您甚至可以在同一目录中多次显示单个文件。只有当指向文件的最后一个链接被删除时,文件才会真正被删除。

于 2011-07-27T16:49:50.723 回答
2

unlink从文件系统中删除一个名称( man unlink)。如果还释放空间,如果没有进程进一步使用文件处理程序 - 所以我的猜测是,某些进程仍然拥有处理程序(为了测试这个假设,也许你可以编写一个命令行 php 脚本来调用解释器只是为了它运行的时间)。

于 2011-07-27T16:50:06.620 回答
0

如果文件大小可以忽略不计,您可能看不到任何大小变化。请放心,如果一个文件不再可见(并且没有隐藏),它已被标记为删除,并且在它可能占用其旧空间之后创建或修改的任何文件,因此覆盖文件的剩余部分。

于 2011-07-27T16:51:26.510 回答
0

有两点需要考虑:

  • unlink减少特定 inode 的引用计数。如果您在系统的其他地方有硬链接,则该存储仍在使用中。
  • 任何打开文件的程序都会阻止空间被释放,即使文件不再列在磁盘上。
于 2011-07-27T16:52:57.447 回答