Я схожу с ума с файлом 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,
Есть идеи?
file
не проверит весь файл. Он просто рассмотрит несколько байтов в заголовке, чтобы понять, что этоgz
зашифрованный файл.Ответы:
Обходной путь для распаковки файла при
gzip
сбое с «неожиданным концом файла» должен использоватьсяzcat
(также обычно предоставляется пакетом gzip вашего дистрибутива).$ zcat file.raw.gz > file.raw
источник
Вы случайно не переносили файл из Win * в Unix через ftp в режиме ascii? Это может объяснить это. Один и тот же размер файла на Win * и Unix?
источник
Я подозреваю, что вы повреждаете файл, когда копируете его на компьютер * nix.
FTP это в двоичном режиме.
источник
Я решил проблему, используя утилиту P7zip , порт 7za.exe для систем POSIX.
источник
Основываясь на опыте работы с WinRar, я считаю , что он извлекает неполные или поврежденные файлы без ошибок, а gzip (правильно) выдает ошибку.
Что делает 7zip из вашего файла?
Какую версию
gzip -V
объявляет?Что
gzip -t the_name_of_the_file.gz
тебе сказать? (вероятно, тот же неожиданный EOF, но стоит попробовать)источник
У меня была та же проблема, и в моем случае это было связано с тем, что файл представлял собой пустой (0 байт)
gz
файл, созданный с помощьюtouch
команды:gzip не может распаковать его, когда вызывается командой:
Правильный способ представления пустого
txt
файла - сначала создатьtxt
файл, затем сжать его и, наконец, распаковать:Я не знаю, представляет ли этот сценарий ваш случай, но он может дать вам некоторую подсказку или помочь кому-то еще.
источник