[英]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.