取消链接功能不释放磁盘空间

时间:2011-07-27 16:47:16

标签: php destroy delete-file unlink

我在php中测试Unlink以删除一些文件。 这些文件确实已被删除,我再也看不到了,但令人惊讶的是我的硬盘空间永远不会消失。

我想完全删除一个文件。

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

有两件事需要考虑:

  • unlink减少特定inode的引用计数。如果您在系统的其他位置有硬链接,则仍在使用存储。
  • 任何打开文件的程序都会阻止释放空间,即使文件不再列在磁盘上也是如此。