예기치 않은 파일 끝. Gzip 압축 파일


16

gzip 파일에 열중합니다.

WinRAR을 사용하여 Windows에서 파일의 압축을 풀 수 있지만 모든 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에서 GUI 도구를 사용하여 파일을 추출하려고 할 때도 동일한 문제가 발생합니다.

어떤 아이디어?


파일이 동일한 정확한 파일입니까 (예 : 플래시 드라이브에 있고 두 운영 체제에서 열었습니까) 개별적으로 다운로드합니까? 나중에 모든 데이터가없는 불완전한 다운로드 (일명 손상)가있을 수 있습니다.
Freesnöw

1
file명령은 모든 파일을 검사하지는 않습니다. 헤더에서 몇 바이트 만보고 gz인코딩 된 파일인지 알아 봅니다.

유닉스에서 처음으로 시도한 후 나중에 Windows에서 시도했기 때문에 손상되지 않았습니다.
cues7a

gzip 파일을 만들었습니까? 그렇다면 gzip 파일을 작성하기 위해 어떤 운영 체제 및 애플리케이션을 사용 했습니까?
일요일

답변:


5

gzip"예기치 않은 파일 끝"으로 실패 했을 때 파일을 압축 해제하는 해결 방법 zcat은 일반적으로 배포의 gzip 패키지에서 제공하는 것입니다.

$ zcat file.raw.gz > file.raw


2

아스키 모드에서 ftp를 통해 Win *에서 Unix로 파일을 전송 했습니까? 그것은 그것을 설명 할 수 있습니다. Win * 및 Unix에서 파일 크기가 동일합니까?


Windows에서 먼저 파일을 압축 해제하고 나중에 Unix에서 압축을 풀었습니다.
cues7a

1

파일을 * nix 컴퓨터에 복사 할 때 파일이 손상되었다고 생각합니다.

이진 모드로 FTP하십시오.


유닉스와 그 이후의 Windows에서는 주먹으로 압축하려고 시도했기 때문에 파일이 손상되지 않았다고 생각합니다.
cues7a

1
당신이 말하는 것은 말이되지 않습니다. 파일 사본을 만들 필요가 없다면 그렇게 말하십시오. 그렇다면 복사 프로세스 (FTP?)가 잘못되었을 수 있습니다.
Robin Green

USB pendrive를 통해 파일을 전송했습니다. UNIX에서 처음 시도했지만 작동하지 않았으며 Windows에서 시도했지만 작동했습니다.
cues7a

1

나는 유틸리티를 사용하여 문제를 해결했습니다 에 p7zip , POSIX 시스템 7za.exe의 포트입니다.


보관 된 파일이 레거시 Unix 도구에서 인식되지 않는 압축 방법을 사용했다고 말하는 것입니까?
일요일

0

WinRar에 대한 몇 가지 경험을 바탕으로, 첫 번째 추측 은 gzip이 (올바르게) 오류를 발생시키는 동안 오류없이 불완전하거나 손상된 파일을 추출하는 것입니다.

어떻게합니까 7zip과 파일의 확인?

어떤 버전을 gzip -V발표합니까?

무엇을 gzip -t the_name_of_the_file.gz말합니까? (아마도 예상치 못한 EOF이지만 시도해 볼 가치가 있습니다)


gzip -V : gzip 1.3.12, gzip -t the_name_of_the_file-> 예기치 않은 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

이 시나리오가 귀하의 사건을 나타내는 지 모르겠지만 다른 힌트를 줄 수도 있고 다른 사람을 도울 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.