tar、zip 和 rar 的存档大小是否影响从中删除文件所需的时间?

tar、zip 和 rar 的存档大小是否影响从中删除文件所需的时间?

从大型 tar zip 和 rar 档案中删除文件是否比从小型档案中删除文件花费更长的时间?我认为,要从档案中删除文件,必须将删除文件后存在的所有数据重新写入档案,因此与需要重新写入的数据量较少的小型档案相比,需要花费更长的时间……如果不是,这些档案如何能够从档案中间删除数据而不重新写入其余数据?

答案1

你说得完全正确。这在一定程度上取决于所使用的精确存档格式和压缩,但通常,至少必须重写删除文件“之后”存储的所有数据。

答案2

关于@David(前面的发帖人),我觉得给出的答案有些欠缺。

我们来分析一下问题:

1. 从大型 tar zip 和 rar 档案中删除文件比从小型档案中删除文件需要更长的时间吗?

是的,因为存档更大。然而,这是一个荒谬的概括。考虑到可能影响这一点的两个主要因素:存档大小和存档文件数量。

如果只存档了一个文件,那么本质上你所做的就是删除存档本身。但是,如果有许多文件,存档程序(和格式)会以不同的方式处理文件。

例如,焦油意味着顺序的文件存储格式用于存储磁带档案。缺点之一是,由于没有“目录”,因此需要遍历整个档案才能找到文件夹或文件。

另一方面,Rar 有一个选项可以坚硬的文件。固体文件是一种档案,其中所有信息都被视为一个大流。这意味着,每当有人想要访问、编辑、添加或删除文件时,必须先解压缩整个档案,然后重新压缩。

现在我们来谈谈新问题:压缩率。如果文件被高度压缩,无论使用什么算法,访问它们都需要更多时间。尽管这取决于被压缩的文件类型(文本文件(不是 .docx)具有高冗余度,因此可以快速解压缩/重新压缩)

2. 这些档案馆如何能够从档案中间删除数据而不重写其余数据?

除了 rar“可靠”档案外,这个问题之前的推理并不总是有效的。

除了 Tar(原因见 Wikipedia 链接),zip 和 rar 都具有“目录”功能,使档案库能够有选择地提取数据。所有这些都是在不重新压缩现有数据的情况下完成的,尽管需要在档案库内部进行一些更改以告知他该文件不再存在。

把档案想象成一个小盒子,每个文件都塞得满满的,以适应它的大小。只要你拿走一件物品,盒子就会缩小以填满空间。

答案3

tar 不支持压缩档案文件的修改。然后您必须完全重写 tar 档案,暂时保留未压缩的档案。这取决于 tar 档案格式。

相关内容