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