Oszalałem z pliku gzip.
Mogę zdekompresować plik w systemie Windows za pomocą WinRAR, ale nie jest to możliwe w żadnym systemie operacyjnym UNIX.
plik wydaje się być w porządku. Jeśli zrobię
file the_name_of_the_file.gz
Dostaję:
the_name_of_the_file.gz: gzip compressed data, from Unix, last modified: Sun Jan 30 14:10:21 2011
Ale jeśli to zrobię
gunzip -f the_name_of_the_file.gz
Zawsze otrzymuję:
gzip: the_name_of_the_file.gz: unexpected end of file
Ten sam problem występuje, gdy próbuję wyodrębnić plik za pomocą narzędzia GUI w Ubuntu lub MacOSX,
Jakieś pomysły?
file
Komenda nie sprawdza wszystkich pliku. Wystarczy spojrzeć na kilka bajtów w nagłówku, aby stwierdzić, że jest togz
plik zakodowany.Odpowiedzi:
Aby obejść problem
gzip
z „nieoczekiwanym końcem pliku”, należy zastosować obejście problemuzcat
(zwykle dostarczane przez pakiet gzip twojej dystrybucji).$ zcat file.raw.gz > file.raw
źródło
Czy przypadkiem przesłałeś plik z Win * do Unixa przez ftp w trybie ascii? To może to wyjaśnić. Czy plik ma ten sam rozmiar w systemach Win * i Unix?
źródło
Podejrzewam, że psujesz plik podczas kopiowania go na maszynę * nix.
FTP to w trybie binarnym.
źródło
Rozwiązałem problem za pomocą narzędzia P7zip , portu 7za.exe dla systemów POSIX.
źródło
Opierając się na kilku doświadczeniach z WinRar, sądzę , że wyodrębnia niekompletne lub uszkodzone pliki bez podawania błędu, podczas gdy gzip (poprawnie) podaje błąd.
Co 7zip robi z twoim plikiem?
Jaka wersja
gzip -V
ogłasza?Co
gzip -t the_name_of_the_file.gz
ci mówi (prawdopodobnie ten sam nieoczekiwany EOF, ale warto spróbować)źródło
Miałem ten sam problem, aw moim przypadku wynikało to z faktu, że plik był plikiem pustym (0 bajtów)
gz
utworzonym za pomocątouch
polecenia:gzip nie mógł go zdekompresować, gdy zostanie wywołany poleceniem:
Prawidłowym sposobem przedstawienia pustego
txt
pliku byłoby wygenerowanie najpierwtxt
pliku, a następnie skompresowanie go i na koniec rozpakowanie:Nie wiem, czy ten scenariusz reprezentuje twoją sprawę, ale może dać ci jakieś wskazówki lub pomóc komuś innemu.
źródło