|
|
1
45
您会因为文件系统的工作方式而有所不同。 简而言之,你的磁盘是由集群组成的。每个集群都有一个固定的大小,比如4千字节。如果你在这样的集群中存储一个1kb的文件,那么3kb将不会被使用。确切的细节因您使用的文件系统类型而异,但大多数文件系统都是这样工作的。 3kb的浪费空间对于单个文件来说并不多,但如果你有很多非常小的文件,浪费可能会成为磁盘使用量的重要组成部分。 在tar存档中,文件不是存储在集群中,而是一个接一个地存储。这就是差异所在。 |
|
|
2
4
由于不知道你使用的是什么tar或什么样的Unix系统,我的猜测是:旧代码包含许多较小的文件,这些文件本身使用磁盘空间效率低下,因为磁盘空间是由某种块分配的,而不是逐字节分配的。在tar文件中,它们被连接在一起,并最大限度地利用分配给它们的磁盘空间。 |
|
|
3
3
在MacOSX 10.5.6版本中:
如您所见,即使是一个2字节的文件也需要整个4kb的块。有些文件系统通过以下方式避免了这种空间浪费 block suballocation . |
|
|
4
3
有两种可能性。 小文件
最有可能的是
is not 的常用口语形式
As Nils Pipenbrinck wrote
,
要查看文件的逻辑大小,请使用
如果您提取的副本中的稀疏信息不知何故丢失(例如,如果您将tarball提取到不支持稀疏文件的文件系统上,或者如果它被压缩然后解压缩,等等),那么
|
|
|
5
0
du计算磁盘块,而不是文件大小duder。 |
|
|
Greg · 即使更新比先决条件更新,也要进行静态lib存档 2 年前 |
|
|
justinian482 · 在管道中获取md5sum 2 年前 |
|
|
Kacper Rutkowski · 能够将数据附加到文件的存档格式 3 年前 |
|
|
ieure · 为什么TAR文件比其内容小? 17 年前 |