为什么TAR文件比它的内容小?

ieu*_*ure 20 unix tar archive

我有一个我正在存档的目录:

$ du -sh oldcode
1400848
$ tar cf oldcode.tar oldcode
Run Code Online (Sandbox Code Playgroud)

所以目录是1.4gb.但是文件要小得多:

$ ls -l oldcode.tar
-rw-r--r-- 1 ieure ieure 940339200 2002-01-30 10:33 oldcode.tar
Run Code Online (Sandbox Code Playgroud)

只有897mb.它没有以任何方式压缩:

$ file oldcode.tar
oldcode.tar: POSIX tar archive
Run Code Online (Sandbox Code Playgroud)

为什么tar文件小于它的内容?

Nil*_*nck 39

由于文件系统的工作方式,你会有所不同.

简而言之,您的磁盘由群集组成.每个群集的固定大小 - 比方说 - 4千字节.如果您在此类群集中存储1kb文件,则3kb将不使用.具体细节因您使用的文件系统类型而异,但大多数文件系统都以这种方式工作.

3kb浪费的空间对于单个文件来说并不多,但如果你有很多非常小的文件,浪费可能成为磁盘使用的重要部分.

在tar-archive中,文件不是一个接一个地存储在集群中.这就是差异的来源.