复制剪切到底谁快?揭开文件移动的秘密

时间:2022-09-08 01:14:22

复制剪切到底谁快?揭开文件移动的秘密

我们每天几乎都要执行文件的剪切和复制操作,但是你知道这两种操作有什么区别?对同一个文件进行这两种操作谁的速度更快?今天就一起来揭开文件移动的秘密吧。

哼哈二将全权负责

复制和剪切都是文件的移动过程,涉及文件存储标记的变化,好比仓库中的货物移动位置后记录也会改变。因此首先要来了解一下文件存储原理,这样才能更好地理解文件是如何移动的。

在电脑上保存数以万计的文件,系统是如何识别每一个文件的呢?在X86文件系统中,存储在硬盘上面的每个文件,都是采用双向链表结构来标记:前置链表和后继链表,这哼哈二将有双重任务:首先是为文件一头一尾保驾护航,其次是记录文件所在位置。比如,一个3KB的文件A,保存在D盘的前面1~3簇空间(为了叙述方便,假设每簇为1KB),那么起始标记D1(前置链表,1KB)和D3(后继链表,1KB)就表示文件存储位置和大小。当读取这个文件时,系统只找哼哈二将的麻烦,让他们帮忙“搬运”并重新定位、记录位置。

对一个文件进行复制和剪切的时候,由于要将文件移动到其他位置,就要为文件建立新的存储标记以便让系统能够识别。假设将A文件复制到D盘7~9簇空间存放(见图),“复件A”(复制后文件名)的哼哈二将就被标记为D7和D9。所以文件的移动过程包含两部分内容,一是数据移动(在同一分区剪切没有该操作),二是新建(或更改)文件存储标记。由于在不同路径下,两种操作所需时间不同,这也决定着复制剪切孰快孰慢。

小提示

打开一个DOC文档,把第一部分复制或剪切到文章结尾,也是复制。但本文介绍的是文件(不是文件内容)的复制剪切,不要把两者混淆。执行复制剪切时,系统会自动判断所选对象,先把内容(文本或者二进制数据如图形等)复制到内存中,再移动到其他位;文件操作则是复制其路径到内存,然后移动文件并添加存储标记。

复制剪切大揭秘

了解文件标记原理后,下面就来结合常见的复制剪切操作来看看它们两者速度有什么不同。

情况1:文件在同一个分区复制剪切

实例解说:在同一个分区内,把A文件从B文件夹复制或剪切C文件夹

从上面介绍知道,文件复制需要创建新的文件和标记,所需的时间=写入A文件数据时间+建立复件A标记时间。

文件剪切由于没有生成新数据,只是更改一下A文件在C文件夹的标记,所需时间=更改A文件标记时间。

结论:由于剪切少了写入数据时间,只是进行简单更改标记操作,情况1剪切快。

情况2:文件在不同分区进行复制剪切

实例解说:把A文件从C分区复制或剪切到D分区的B文件夹

复制操作和情况1类似,同样需要进行数据写入和建立文件标记,所需的时间=计算D分区可用空间时间+写入A文件数据时间+在D分区建立复件A标记时间。不过和情况1复制相比,添加了计算D分区可用空间时间,而且由于是在其他分区新建标记,所花的时间会略长一些。

文件在不同分区剪切操作,此时不仅要写入还要清空源数据(删除A文件的链表数据),新建标记。所需时间=计算D分区可用空间时间+写入A文件数据时间+删除C分区A文件时间+在D分区建立A文件标记时间。

结论:从操作步骤就可以看出,剪切操作增加了“删除C分区A文件时间”,所以情况2复制快。为了让大家更直观了解上述操作对比,具体操作所花时间如表所示(测试文件大小是698MB)。

小提示

实际上剪切操作中的清空源数据并不是真正的删除文件,这里的删除操作只是修改了这个文件文件头的前两个代码,在文件系统分配表中给该它添加删除标记,所需时间并不长。

不过,如果复制剪切文件数量很多,剪切速度就会显得更慢。因为,被标记删除的文件越多,需要修改的前置和后继链接数据代码就越多。这也是为什么删除一个同样容量的大文件比删除多个小文件(总计容量相同)更快。

上一篇:80后IT站长的生意经 下一篇:网络小说想看就看