![rm 命令如何释放磁盘空间?](https://linux22.com/image/15828/rm%20%E5%91%BD%E4%BB%A4%E5%A6%82%E4%BD%95%E9%87%8A%E6%94%BE%E7%A3%81%E7%9B%98%E7%A9%BA%E9%97%B4%EF%BC%9F.png)
我试图理解rm
命令是如何工作的并得到这个一:
rm 命令从索引中删除指定文件的条目。由于文件被删除,Linux 将存储文件的块标记为空闲,并使其可用于新文件。在磁盘中存储新文件时,Linux 使用索引来查找空闲块。如果一个块在索引中被标记为空闲,则它用于存储新数据,无论它包含什么。
从技术角度来看,不会,已删除的文件会保留在磁盘中,直到新文件或文件夹存储在该文件存储的同一位置为止。
正如它所说,如何每次使用rm
命令获得更多可用磁盘空间?
答案1
您引用的教程主要是参考该实用程序的用途shred
。 (这篇文章写得不是特别好。)
关于rm
命令:系统保留每个文件的引用计数。它知道有多少个到文件 inode 的硬链接,以及当前有多少进程拥有该文件的打开文件描述符。
该文件的一个特定目录条目将被每个有效的rm
.当不再有到该文件的 inode 的链接,并且没有进程为其保存有效的文件描述符时,文件系统驱动程序会将 inode 以及该文件使用的所有数据块返回到空闲列表。
关于shred
命令:将文件数据块返回到空闲列表不会破坏这些块中的数据。它们仍然可以通过将磁盘作为块设备读取来检索,这可能会带来数据安全风险。
该shred
命令用于覆盖文件中的所有数据块(带有零或随机数),以防止数据被恢复。然后这些块被释放到空闲列表中。shred
手册页中指出了几个弱点。它在日志文件系统和 SSD 设备上表现不佳。