Неожиданный конец файла. Gzip сжатый файл


16

Я схожу с ума с файлом GZIP.

Я могу распаковать файл в Windows, используя WinRAR, но это невозможно в любой операционной системе UNIX.

файл вроде в порядке. Если я сделаю

file the_name_of_the_file.gz

Я получил:

the_name_of_the_file.gz: gzip compressed data, from Unix, last modified: Sun Jan 30 14:10:21 2011

Но если я сделаю

gunzip -f the_name_of_the_file.gz

Я всегда получаю:

gzip: the_name_of_the_file.gz: unexpected end of file

Та же проблема возникает, когда я пытаюсь извлечь файл, используя инструмент GUI в Ubuntu или MacOSX,

Есть идеи?


Это точно такой же файл (т.е. у вас есть его на флешке и вы открыли его из двух операционных систем) или вы скачиваете его по отдельности? Если позже, у вас может быть неполная загрузка, которая не содержит все данные (иначе, повреждена).
Freesnöw

1
Команда fileне проверит весь файл. Он просто рассмотрит несколько байтов в заголовке, чтобы понять, что это gzзашифрованный файл.

Он не поврежден, потому что я попробовал сначала в Unix, а затем в Windows.
cues7a

Вы сделали файл gzip? Если да, то какую операционную систему и приложение вы использовали для создания файла gzip?
вс

Ответы:


5

Обходной путь для распаковки файла при gzipсбое с «неожиданным концом файла» должен использоваться zcat(также обычно предоставляется пакетом gzip вашего дистрибутива).

$ zcat file.raw.gz > file.raw


2

Вы случайно не переносили файл из Win * в Unix через ftp в режиме ascii? Это может объяснить это. Один и тот же размер файла на Win * и Unix?


Я попытался распаковать файл сначала в Windows, а затем в Unix.
cues7a

1

Я подозреваю, что вы повреждаете файл, когда копируете его на компьютер * nix.

FTP это в двоичном режиме.


Я думаю, что файл не поврежден, потому что я пытался разархивировать его в Unix, а затем в Windows.
cues7a

1
То, что вы говорите, не имеет смысла. Если вам не нужно было создавать копию файла, то так и скажите. Если вы это сделали, возможно, ваш процесс копирования (FTP?) Был неправильным.
Робин Грин

Я передал файл через USB Pendrive. Сначала я попытался в UNIX, и это не сработало, а затем я попытался в Windows, и это сработало.
cues7a

1

Я решил проблему, используя утилиту P7zip , порт 7za.exe для систем POSIX.


Итак, вы говорите, что в архивном файле использовался метод сжатия, который не распознается устаревшими инструментами Unix?
вс

0

Основываясь на опыте работы с WinRar, я считаю , что он извлекает неполные или поврежденные файлы без ошибок, а gzip (правильно) выдает ошибку.

Что делает 7zip из вашего файла?

Какую версию gzip -Vобъявляет?

Что gzip -t the_name_of_the_file.gzтебе сказать? (вероятно, тот же неожиданный EOF, но стоит попробовать)


gzip -V: gzip 1.3.12 ,, gzip -t the_name_of_the_file -> неожиданный EOF
cues7a

0

У меня была та же проблема, и в моем случае это было связано с тем, что файл представлял собой пустой (0 байт) gzфайл, созданный с помощью touchкоманды:

$touch file.txt.gz
-rw-r--r-- 1 user user    0 2016-05-24 11:48 file.txt

gzip не может распаковать его, когда вызывается командой:

$gzip -dv file.txt.gz
gzip: file.txt.gz: unexpected end of file

Правильный способ представления пустого txtфайла - сначала создать txtфайл, затем сжать его и, наконец, распаковать:

$touch file.txt

$gzip -v file.txt
file.txt:         0.0% -- replaced with file.txt.gz

$gzip -dv file.txt.gz
file.txt.gz:      0.0% -- replaced with file.txt

Я не знаю, представляет ли этот сценарий ваш случай, но он может дать вам некоторую подсказку или помочь кому-то еще.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.