Akhir file tidak terduga. File terkompresi Gzip

16

Saya menjadi gila dengan file gzip.

Saya dapat mendekompres file di Windows menggunakan WinRAR tetapi tidak mungkin pada sistem operasi UNIX.

file sepertinya ok. Jika aku melakukan

file the_name_of_the_file.gz

Saya mendapat:

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

Tetapi jika saya lakukan

gunzip -f the_name_of_the_file.gz

Saya selalu mendapatkan:

gzip: the_name_of_the_file.gz: unexpected end of file

Masalah yang sama terjadi ketika saya mencoba mengekstrak file menggunakan alat GUI di Ubuntu atau MacOSX,

Ada ide?

cues7a
sumber
Apakah ini file yang sama persis (mis. Anda memilikinya pada flash drive dan telah membukanya dari dua sistem operasi) atau apakah Anda mengunduhnya secara individual? Jika nanti, Anda dapat memiliki unduhan yang tidak lengkap yang tidak memiliki semua data (alias, korup).
Freesnöw
1
The fileperintah tidak akan memeriksa semua file. Itu hanya akan melihat beberapa byte di header untuk mengetahui bahwa itu adalah gzfile yang dikodekan.
Itu tidak rusak karena saya sudah mencoba dulu di Unix dan kemudian di Windows.
cues7a
Apakah Anda membuat file gzip? Jika demikian, sistem operasi dan aplikasi apa yang Anda gunakan untuk membuat file gzip?
Minggu

Jawaban:

5

Solusi untuk mengompres file ketika gzipgagal dengan "akhir file tak terduga" adalah menggunakan zcat(juga biasanya disediakan oleh paket gzip distribusi Anda).

$ zcat file.raw.gz > file.raw

gangelop
sumber
2

Apakah Anda kebetulan mentransfer file dari Win * ke Unix melalui ftp dalam mode ascii? Itu mungkin menjelaskannya. Apakah file berukuran sama pada Win * dan Unix?

Heiko Rupp
sumber
Saya telah mencoba untuk mendekompres file pertama di Windows dan kemudian di Unix.
cues7a
1

Saya curiga Anda merusak file ketika menyalinnya ke mesin * nix.

FTP itu dalam mode biner.

Brian Roach
sumber
Saya pikir file tersebut tidak rusak karena saya mencoba untuk gunzip tinjunya di unix dan kemudian di Windows.
cues7a
1
Apa yang Anda katakan tidak masuk akal. Jika Anda tidak perlu membuat salinan file, katakan demikian. Jika Anda melakukannya, mungkin proses penyalinan Anda (FTP?) Salah.
Robin Green
Saya mentransfer file melalui flashdisk USB. Saya mencoba dulu di UNIX dan tidak berhasil, lalu saya coba di Windows dan berhasil.
cues7a
1

Saya telah memecahkan masalah menggunakan utilitas P7zip , port 7za.exe untuk sistem POSIX.

cues7a
sumber
Jadi, Anda mengatakan file yang diarsipkan menggunakan metode kompresi yang tidak dikenali oleh alat Unix lama?
Minggu
0

Berdasarkan beberapa pengalaman dengan WinRar, tebakan pertama saya adalah mengekstraksi file yang tidak lengkap atau rusak tanpa memberikan kesalahan, sementara gzip (dengan benar) memberikan kesalahan.

Apa 7zip dari file Anda?

Versi apa yang gzip -Vdiumumkan?

Apa yang gzip -t the_name_of_the_file.gzmemberitahu Anda? (mungkin EOF tak terduga yang sama, tetapi patut dicoba)

Jason Sherman
sumber
gzip -V: gzip 1.3.12 ,, gzip -t the_name_of_the_file -> EOF yang tak terduga
cues7a
0

Saya memiliki masalah yang sama dan, dalam kasus saya, itu disebabkan oleh fakta bahwa file tersebut adalah file kosong (0 byte) gz, dibuat dengan touchperintah:

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

gzip tidak dapat mendekompresnya, ketika dipanggil dengan perintah:

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

Cara yang benar untuk mewakili txtfile kosong akan menghasilkan pertama txtfile, lalu kompres dan, akhirnya, kompres itu:

$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

Saya tidak tahu apakah skenario ini mewakili kasus Anda, tetapi ini mungkin memberi Anda petunjuk atau membantu orang lain.

Alfredo Capobianchi
sumber