我看到有关unlink()
函数here
它说:
unlink()
不是关于删除文件,而是关于删除文件名。该联机帮助页说:“取消链接 - 删除名称,可能还有它所引用的文件。”
我不明白,unlink()
会删除文件还是“看不见”,仍会浪费空间和性能????
答案 0 :(得分:1)
它基本上意味着为该文件保留的空间被释放以供系统使用。删除该文件的所有链接,使计数0
。并且0
表示没有文件,有效地释放了空间。
unlink()
将删除链接(您指定的文件的名称)到相关存储为(并称为)inode的数据。
当数据没有“链接”时,系统会自动释放与该文件相关的空间。引用inode的链接数量将直接跟踪到inode。
通过运行命令ls -l
drwxr-xr-x 7 user Administ 4096 Nov 25 07:46 app
drwxr-xr-x 5 user Administ 0 Nov 24 14:25 inc
其中7
和5
是指向该文件的相应链接。现在,当您运行unlink()
并从目录中删除记录(使链接计数0
)时,系统可以释放相关空间。
你为什么这么问?
当链接为0
时,这意味着没有指向所述数据的链接,实际上意味着没有更多的数据链接,因此可以释放它。允许您使用释放的空间。
这正是链接和快照的工作方式。
答案 1 :(得分:0)
请参阅:http://www.w3schools.com/php/func_filesystem_unlink.asp
所有内容均来自该页面。
unlink()函数删除文件。
例如
<?php
$file = "test.txt";
if (!unlink($file)) {
echo ("Error deleting $file");
} else {
echo ("Deleted $file");
}
?>