为什么删除大文件需要更长的时间?


30

我的理解是,rm在文件上运行只会取消链接,从而在文件系统中将空间标记为空闲。然后应该遵循的原则是,删除一个文件通常花费大致相同的时间(即删除速度与文件数量成正比,而不与文件大小成正比)。

那么,为什么删除一个15 GB的文件却要花一分钟多的时间rm file.tar.gz呢?


5
什么文件系统?
Shane Madden

8
在许多文件系统上,每个“块”的可用空间都必须被“标记”为空闲。大文件有更多块。但是,并非所有文件系统都这样!
克里斯S

@ShaneMadden好问题;ext4现在,但是我在其他ext#上也注意到了它。
Tom Marthenal 2012年

这就是每个文件都应拥有自己的虚拟化文件系统的原因,以便可以超快地盲目擦除inode!<JEST>
thinice

1
在这种情况下,哪个文件系统会更好?我现在正在使用便携式驱动器将大型VM磁盘从一台计算机移动到另一台计算机,而让机器永远占用我的精力。
motobói

Answers:


39

取消链接单个块需要花费固定的时间,但是超出单个块大小的文件由链接在一起的多个块组成,并且文件越大,链接的块数量越大。


14
<BSD狂热者> 喃喃自语 UFS 喃喃自语糊涂 软更新 喃喃自语删除内容更快地糊状煎饼!</ BSD Zealot>
voretaq7'9

XFS删除大型文件的速度非常快,但是删除大量小文件的速度非常慢。
安德鲁(Andrew)

4
一个文件将始终只使用一个inode。它确实使用多个数据块。
西蒙·里希特

2
一整块人统治着他们,一整块人找到了他们,一整块人把它们全部带走,在黑暗中将它们束缚起来。
Rqomey 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.