如果我选择十几个文件并选择“移至废纸篓”,则整个过程需要近一分钟才能完成。如果我选择“删除”,这些文件就会立即消失。
既然在本质上,它们或多或少都是相同的更改或删除指针的过程,为什么时间会有差异?有没有办法加快“移至废纸篓”的速度?
操作系统:Kubuntu 22.04
KDE Plasma 版本:5.24.7
KDE 框架版本:5.92.0
Qt 版本:5.15.3
内核版本:6.2.0-36-generic (64 位)
图形平台:X11
处理器:4 × Intel Xeon CPU E31225 @ 3.10GHz
内存:15.5 GB RAM
图形处理器:NVIDIA GeForce GTX 1650/PCIe/SSE2
答案1
既然从本质上讲,它们都是更改或删除指针的相同过程,那么为什么时间会有差异呢?有没有办法加快“移至废纸篓”的速度?
这是一个错误的假设。在 Linux ext4 文件系统上,删除文件比在同一卷上移动文件花费的时间更长,因为每个过程涉及的操作不同。
删除文件涉及以下步骤:
取消文件链接:这将从目录结构中删除对该文件的引用,使其对用户不可见。
将数据块标记为空闲:之前用于存储文件内容的数据块被标记为空闲,表示其他文件可以使用它们。但是,此时数据本身实际上并未从磁盘中删除。
更新文件系统元数据:文件系统元数据(用于跟踪文件的位置和大小)已更新以反映已删除的文件。
在同一卷上移动文件时,只需取消文件链接(步骤 1),然后将其重新链接到新位置。
取消文件链接:这将从目录结构中删除对该文件的引用,使其对用户不可见。
链接文件:这会使文件在目录结构中的新位置可见。