为什么我的 tar 文件比备份的目录大

为什么我的 tar 文件比备份的目录大

这个问题没有帮助我(尽管有相同的标题)。所以我发布了这个即使这是一个重复的问题。

据我所知,总计包括du -k所有子目录并表明我有 77 兆字节的数据

/raid/fpuData/oldOutput>du -ks
77063332        .
/raid/fpuData/oldOutput>tar -cvzf ../oldOutput.tar.zip *

备份仍在运行,但文件已经比 77 MB 大得多

/raid/fpuData>ls oldOutput.tar.zip
-rw-r--r-- 1 nobody nobody 14470610944 Jul  1 22:18 oldOutput.tar.zip

我正在备份的文件都是充满数字的巨大文本文件,就像一个巨大的逗号分隔电子表格)。像这样的东西

0.3454915028125262743685653,0.5590169943749474512628694,...
0.221761776923297210251107,0.3588180924674668759166707,...
-0.06101864995889930837202897,-0.09873024958113109372792593,...
-0.3001958820500086333460388,-0.4857271404396689140625654,...
...

为什么tar文件比目录大?它应该被压缩,因为我正在使用带有选项的数据z。那么,敲响它有什么意义tar呢?

答案1

您的压缩 tar 文件比其内容小。

ls默认情况下以字节为单位打印文件大小。
du -k以千字节为单位打印文件大小。

0610944B ≈ 14131456KB < 77063332KB

要使ls打印文件大小以千字节为单位,请使用该-k标志。

答案2

请记住,如果您压缩主要二进制数据(即 *.gz、*.zip),您可能会得到比原始聚合大得多的输出文件。所以我会丢失你正在尝试的 tar 上的 -z 开关。

答案3

文本文件并不会因为带有“txt”扩展名而压缩得更好。文本文件通常压缩得更好,因为往往存在大量额外的“空白”和重复的字母使用。

我假设您的 CSV 文件几乎没有“空白”需要清理,并且实际上模拟了二进制或图形图像文件。

答案4

也许您备份稀疏文件时没有使用 tar 选项--sparse

您可以通过在完成后提取存档并将源目录与提取的目录进行比较来轻松找到答案。

相关内容