rm 命令如何释放磁盘空间?

rm 命令如何释放磁盘空间?

我试图理解rm命令是如何工作的并得到这个:

rm 命令从索引中删除指定文件的条目。由于文件被删除,Linux 将存储文件的块标记为空闲,并使其可用于新文件。在磁盘中存储新文件时,Linux 使用索引来查找空闲块。如果一个块在索引中被标记为空闲,则它用于存储新数据,无论它包含什么。

从技术角度来看,不会,已删除的文件会保留在磁盘中,直到新文件或文件夹存储在该文件存储的同一位置为止。

正如它所说,如何每次使用rm命令获得更多可用磁盘空间?

答案1

您引用的教程主要是参考该实用程序的用途shred。 (这篇文章写得不是特别好。)

关于rm命令:系统保留每个文件的引用计数。它知道有多少个到文件 inode 的硬链接,以及当前有多少进程拥有该文件的打开文件描述符。

该文件的一个特定目录条目将被每个有效的rm.当不再有到该文件的 inode 的链接,并且没有进程为其保存有效的文件描述符时,文件系统驱动程序会将 inode 以及该文件使用的所有数据块返回到空闲列表。

关于shred命令:将文件数据块返回到空闲列表不会破坏这些块中的数据。它们仍然可以通过将磁盘作为块设备读取来检索,这可能会带来数据安全风险。

shred命令用于覆盖文件中的所有数据块(带有零或随机数),以防止数据被恢复。然后这些块被释放到空闲列表中。shred手册页中指出了几个弱点。它在日志文件系统和 SSD 设备上表现不佳。

相关内容