簡體   English   中英

Tar 錯誤:存檔中出現意外的 EOF

[英]Tar error: Unexpected EOF in archive

我 tar 一個充滿 JPEG 圖像的目錄:

tar cvfz myarchive.tar.gz mydirectory

當我解壓縮存檔時:

tar xvfz myarchive.tar.gz

我得到一個錯誤:

tar: Unexpected EOF in archive

查看輸出,它在一個特定的 JPEG 圖像的中間失敗。

我究竟做錯了什么?

有趣的。 我有幾個問題可能會指出問題所在。

1/ 你是在同一個平台上解壓的嗎? 它們可能是不同版本的tar (例如,GNU 和 old-unix)? 如果它們不同,您可以在塗過焦油的同一個盒子上解壓嗎?

2/ 當你簡單地 gunzip myarchive.tar.gz 時會發生什么? 那樣有用嗎? 也許您的文件已損壞/被截斷。 我假設您會注意到壓縮是否產生錯誤,是嗎?

基於 GNU tar 源,它只會在find_next_block()過早返回 0 時打印該消息,這通常是由截斷存檔引起的。

可能是您以 ascii 模式而不是二進制模式 ftped 了文件? 如果沒有,這可能會有所幫助。

$ gunzip myarchive.tar.gz

然后使用解壓生成的 tar 文件

$ tar xvf myarchive.tar

希望這可以幫助。

我遇到了由 cron 作業生成的截斷 tar 文件的類似問題,並將標准輸出重定向到文件解決了這個問題。

通過與同事交談,cron 創建了一個管道並限制了可以發送到標准輸出的輸出量。 我通過從我的 tar 命令中刪除 -v 來修復我的問題,使其不那么冗長並將錯誤輸出保持在與我的其他 cron 作業相同的位置。 不過,如果您需要詳細的 tar 輸出,則需要重定向到一個文件。

就我而言,我在 tar 文件上傳完成之前就開始了 untar。

我有一個類似的錯誤,但在我的例子中,原因是文件重命名。 我正在創建一個壓縮文件file1.tar.gz並使用tar -uvf./combined.tar./file1.tar.gz在另一個 tarfile 中重復更新它。 在解壓combined.tar並嘗試解壓file1.tar.gz后,出現意外的 EOF 錯誤。

我注意到壓縮前后file的輸出有所不同:

$file file1.tar.gz
file1.tar.gz: gzip compressed data, was "file1.tar", last modified: Mon Jul 29 12:00:00 2019, from Unix
$tar xvf combined.tar
$file file1.tar.gz
file1.tar.gz: gzip compressed data, was "file_old.tar", last modified: Mon Jul 29 12:00:00 2019, from Unix

因此,當我最初創建combined.tar時,該文件似乎具有不同的名稱,並且使用 tar 更新功能不會覆蓋 gzip 文件名的元數據。 解決方案是從頭開始重新創建combined.tar而不是更新它。

我仍然不知道到底發生了什么,因為更改 gzip 文件的名稱通常不會破壞它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM