使用 tar 和 split 后出现“gzip: stdin: 文件意外结尾”

使用 tar 和 split 后出现“gzip: stdin: 文件意外结尾”

我的文件夹中有一个大约 600MB 的图像文件夹output_test。然后,我使用以下命令创建 100MB 的 tar.gz 文件块:

tar -czf - output_test/ | split --bytes=100MB -d -a 3 - output_test.tar.gz.

这给了我以下文件

-rw-rw-r-- 1 martin 96M Nov 13 17:12 output_test.tar.gz.000
-rw-rw-r-- 1 martin 96M Nov 13 17:12 output_test.tar.gz.001
-rw-rw-r-- 1 martin 96M Nov 13 17:12 output_test.tar.gz.002
-rw-rw-r-- 1 martin 96M Nov 13 17:12 output_test.tar.gz.003
-rw-rw-r-- 1 martin 96M Nov 13 17:12 output_test.tar.gz.004
-rw-rw-r-- 1 martin 96M Nov 13 17:12 output_test.tar.gz.005
-rw-rw-r-- 1 martin 26M Nov 13 17:12 output_test.tar.gz.006

看起来一切都很好(虽然总大小似乎没有减少?),但是当我尝试解压其中一个文件时

tar -xzf output_test.tar.gz.000

我收到以下错误

gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

有谁知道为什么会发生这个错误?

虽然看起来文件提取得很好。所以,我不确定是否可以安全地忽略此错误?

答案1

当您像这样分割输出时,结果是部分主文件的;他们本身并不完整。

因此,如果您只查看“.000”文件,那么您只会看到输出的第一部分。

要重新创建“真实”文件,您需要将它们放在一起。

所以你会做类似的事情:

cat output_test.tar.gz.* | tar xzf -

相关内容