Ошибка Tar: неожиданный EOF в архиве - PullRequest
14 голосов
/ 25 августа 2009

Я распаковываю каталог, полный изображений JPEG:

tar cvfz myarchive.tar.gz mydirectory

Когда я распаковываю архив:

tar xvfz myarchive.tar.gz

Я получаю ошибку:

tar: Unexpected EOF in archive

Глядя на вывод, он не удается в середине одного конкретного изображения JPEG.

Что я делаю не так?

Ответы [ 4 ]

10 голосов
/ 25 августа 2009

Интересно. У меня есть несколько вопросов, которые могут указать на проблему.

1 / Вы отправляетесь на той же платформе, на которой находитесь? Это могут быть разные версии tar (например, GNU и old-unix)? Если они разные, можете ли вы распаковать на том же ящике, на котором вы использовали?

2 / Что произойдет, когда вы просто загрузите myarchive.tar.gz? Это работает? Возможно, ваш файл поврежден / усечен. Я предполагаю, что вы заметите, если сжатие сгенерировало ошибки, да?

Исходя из исходного кода GNU tar, это сообщение будет напечатано только в том случае, если find_next_block() возвращает 0 преждевременно, что обычно вызвано усеченным архивом.

7 голосов
/ 25 августа 2009

Может быть, у вас есть ftped файл в режиме ascii вместо бинарного режима? Если нет, это может помочь.

$ gunzip myarchive.tar.gz

А затем распаковать полученный tar-файл, используя

$ tar xvf myarchive.tar

Надеюсь, это поможет.

6 голосов
/ 23 сентября 2009

У меня была похожая проблема с усеченными tar-файлами, создаваемыми заданием cron, и перенаправление стандартного файла в файл устранило проблему.

Из разговора с коллегой cron создает канал и ограничивает объем вывода, который можно отправить стандартному выходу. Я исправил мой, удалив -v из моей команды tar, сделав ее намного менее многословной и сохранив вывод ошибок в том же месте, что и остальные мои задания cron. Если вам нужен подробный вывод tar, вам все равно придется перенаправить в файл.

2 голосов
/ 25 августа 2016

В моем случае я запустил untar до завершения загрузки файла tar.

...