Bash
“gzip:stdin:文件意外結束”在使用 tar 和 split 後
我在一個文件夾中有一個大約 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
有誰知道為什麼會發生這個錯誤?
雖然看起來文件提取得很好。所以,我不確定我是否可以安全地忽略這個錯誤?
當您像這樣拆分輸出時,結果是主文件的*一部分;*他們自己並不完整。
因此,如果您只查看“.000”文件,那麼您只會查看輸出的第一部分。
要重新創建“真實”文件,您需要將它們放在一起。
所以你會做這樣的事情:
cat output_test.tar.gz.* | tar xzf -