Несподіваний кінець файлу. Стиснутий файл Gzip


15

Я зійшов з розуму з файлу 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

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

Будь-які ідеї?


Це той самий точний файл (тобто, ви маєте його на флеш-диску і відкрили його з двох операційних систем) або ви завантажуєте його окремо? Якщо пізніше, ви можете мати неповну завантаження, що не має всіх даних (так званий, пошкоджений).
FreeSnow

1
The file команда не перевірить весь файл. Це буде просто подивитися на кілька байт в заголовку, щоб з'ясувати, що це gz закодований файл.

Це не пошкоджено, тому що я спробував спочатку в Unix і пізніше в Windows.
cues7a

Ви зробили файл gzip? Якщо так, то яку операційну систему та програму ви використовували для створення gzip-файлу?
Sun

Відповіді:


4

Помилка розпакування файлу, коли gzip не вдається "використовувати несподіваний кінець файлу" zcat (також зазвичай надається пакетом gzip вашого дистрибутива).

$ zcat file.raw.gz > file.raw


2

Ви випадково передали файл з Win * в Unix через ftp в ascii режимі? Це може пояснити це. Чи є файл того ж розміру на Win * і Unix?


Я спробував ту декомпресувати файл спочатку в Windows і пізніше в Unix.
cues7a

1

Я підозрюю, що ви копіюєте файл, коли його копіюєте на машину * nix.

FTP його в двійковому режимі.


Я думаю, що файл не пошкоджений, тому що я намагався gunzip його кулак в Unix і пізніше в Windows.
cues7a

1
Те, що ви говорите, не має сенсу. Якщо вам не потрібно створювати копію файлу, скажіть так. Якщо ви це зробили, можливо, ваш процес копіювання (FTP?) Був неправильним.
Robin Green

Я передав файл через USB pendrive. Я спробував спочатку в UNIX, і він не працював, а потім я спробував у Windows, і він працював.
cues7a

1

Я вирішив проблему за допомогою утиліти P7zip , порт 7za.exe для систем POSIX.


Отже, ви говорите, що заархівований файл використовував метод стиснення, який не розпізнається успадкованими інструментами Unix?
Sun

0

Виходячи з декількох досвіду роботи з WinRar, моя перша здогадка полягає в тому, що витягує неповні або пошкоджені файли, не даючи помилки, а gzip (правильно) дає помилку.

Що робить 7zip зробити свій файл?

Яка версія gzip -V оголосити?

Що робить gzip -t the_name_of_the_file.gz кажу тобі? (мабуть, той самий несподіваний EOF, але варто спробувати)


gzip -V: gzip 1.3.12 ,, gzip -t назва_файлу - & gt; несподіваний 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.