损坏的tar(生成的文件夹小于打包文件)

我在SuSe 10.3服务器版本上创build了一个tarball。

.tar文件的大小为6.5 GB,但是如果我在Ubuntu 9.10下解压缩,则生成的文件夹只有1.5 GB的大小。

使用的命令: tar cvf用于打包, tar xvf用于解包。

也许有人知道这是如何解决的,会很好。

干杯。

如果目录中有符号链接或硬链接,那么tar可能会将每个文件添加为一个单独的文件。 当你在linux文件系统上解压时,它会恢复链接,然后所有东西都占用更less的空间。

Tar不是用于压缩的,只是用于创build包含多个文件的文件。 这就是为什么你通常会通过gzip或bzipfind它的原因。

你可能有更好的结果与cpio,它更适合更大的备份,并可以脚本来正确处理sym链接和特殊文件。

如果你有很多的小文件,那么你可能会遇到焦油阻塞和目录开销。 重要的信息是源目录有多大。 tar可能通过不为其分配块来压缩文件中的空白空间。 试试du--apparent-size选项。

您可以尝试将tar -tf生成的文件列表与提取的文件进行比较。 用tar -xf压缩,看看你是否在解压缩时出错。 尝试重新创build一个tar的副本,看它有多大。

我会build议尝试pax 。 至less,这是在CentOS中如何调用的。 IIRC,它可以通过跳过无效的tar成员来处理损坏的TAR文件。 否则,我build议你尝试Python标准库的tarfile模块,并以编程方式执行此操作。 几年前我曾经做过类似的事情。