Kết thúc bất ngờ của tập tin. Tệp nén Gzip


16

Tôi phát điên với một tập tin gzip.

Tôi có thể giải nén tệp trong Windows bằng WinRAR nhưng không thể có trên bất kỳ hệ điều hành UNIX nào.

các tập tin có vẻ là ok. Nếu tôi làm

file the_name_of_the_file.gz

Tôi có:

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

Nhưng nếu tôi làm

gunzip -f the_name_of_the_file.gz

Tôi nhận được:

gzip: the_name_of_the_file.gz: unexpected end of file

Vấn đề tương tự xảy ra khi tôi cố gắng giải nén tệp bằng công cụ GUI trong Ubuntu hoặc MacOSX,

Có ý kiến ​​gì không?


Đây có phải là cùng một tệp chính xác (tức là Bạn có nó trên ổ đĩa flash và đã mở nó từ hai hệ điều hành) hoặc bạn đang tải xuống riêng lẻ? Nếu sau này, bạn có thể tải xuống không đầy đủ mà không có tất cả dữ liệu (hay còn gọi là hỏng).
Freesnöw

1
Các filelệnh sẽ không kiểm tra tất cả các tập tin. Nó sẽ chỉ nhìn vào một vài byte trong tiêu đề để tìm ra rằng đó là một gztệp được mã hóa.

Nó không bị hỏng vì tôi đã thử đầu tiên trong Unix và sau đó trong Windows.
cues7a

Bạn đã tạo tập tin gzip chưa? Nếu vậy, bạn đã sử dụng hệ điều hành và ứng dụng nào để tạo tệp gzip?
CN

Câu trả lời:


5

Một cách giải quyết để giải nén tệp khi gzipkhông thành công với "kết thúc tệp không mong muốn" là sử dụng zcat(cũng thường được cung cấp bởi gói gzip của bản phân phối của bạn).

$ zcat file.raw.gz > file.raw


2

Bạn có bất kỳ cơ hội nào để chuyển tệp từ Win * sang Unix qua ftp ở chế độ ascii không? Điều đó có thể giải thích nó. Tệp có cùng kích thước trên Win * và Unix không?


Tôi đã thử giải nén tệp đầu tiên trong Windows và sau đó là Unix.
cues7a

1

Tôi nghi ngờ bạn đang làm hỏng tệp khi sao chép nó vào máy * nix.

FTP nó ở chế độ nhị phân.


Tôi nghĩ rằng tập tin không bị hỏng vì tôi đã cố gắng nén nó thành tập tin unix và sau đó trong Windows.
cues7a

1
Những gì bạn đang nói không có ý nghĩa. Nếu bạn không cần tạo một bản sao của tập tin, hãy nói như vậy. Nếu bạn đã làm, có thể quá trình sao chép của bạn (FTP?) Là không chính xác.
Robin Green

Tôi đã chuyển tập tin qua USB Pendrive. Tôi đã thử đầu tiên trong UNIX và nó không hoạt động và sau đó tôi đã thử trong Windows và nó đã hoạt động.
cues7a

1

Tôi đã giải quyết vấn đề bằng cách sử dụng tiện ích P7zip , cổng 7za.exe cho các hệ thống POSIX.


Vì vậy, bạn đang nói rằng tệp lưu trữ đã sử dụng một phương thức nén không được công nhận bởi các công cụ Unix kế thừa?
CN

0

Dựa trên một vài kinh nghiệm với WinRar, tôi đoán đầu tiên là nó giải nén không đầy đủ hoặc bị hỏng tập tin mà không đưa ra một lỗi, trong khi gzip là (chính xác) đưa ra một lỗi.

7zip làm gì cho tập tin của bạn?

Phiên bản nào gzip -Vcông bố?

Điều gì gzip -t the_name_of_the_file.gznói với bạn? (có thể là EOF bất ngờ tương tự, nhưng đáng để thử)


gzip -V: gzip 1.3.12 ,, gzip -t the_name_of_the_file -> EOF bất ngờ
cues7a

0

Tôi đã có cùng một vấn đề và, trong trường hợp của tôi, đó là do thực tế là tệp là một tệp trống (0 byte) gz, được tạo bằng touchlệnh:

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

gzip không thể giải nén nó, khi được gọi bằng lệnh:

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

Cách chính xác để biểu diễn một txttệp trống sẽ tạo ra txttệp đầu tiên , sau đó nén tệp và cuối cùng, giải nén nó:

$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

Tôi không biết nếu kịch bản này đại diện cho trường hợp của bạn, nhưng nó có thể cung cấp cho bạn một số manh mối hoặc giúp đỡ người khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.