tar: 아카이브에 예상치 못한 EOF가 있습니다.

tar: 아카이브에 예상치 못한 EOF가 있습니다.

.tar.gz파일의 압축을 풀려고 했으나 다음과 같은 오류가 발생했습니다.

gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

tar.gz파일에는 .tar압축을 풀면 다음을 생성하는 파일이 포함되어 있습니다.

tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

나는 시도했지만 –ignore-zeros–ignore-failed-read다 작동하지 않습니다.

파일이 손상된 경우에도 압축을 풀 수 있는 방법이 있나요?

문제가 있는 파일 형식: .tar.gz: UNIX 시스템의 Gzip 압축 데이터.

답변1

두 가지 항목을 확인하십시오.

(1) 예파일이 불완전합니다다운로드 오류로 인해? wget을 사용하는 경우 -c 옵션을 사용하여 다시 다운로드하십시오. (항상 발생합니다).

(2) .tar 또는 .tar.gz 파일명이 존재하는지 여부잘못된 기호. 프로필 이름은 문자와 숫자로 구성되어 간단하고 짧게 유지하는 것이 가장 좋습니다. (항상 발생합니다). 그러니 파일 이름을 바꾸시면 됩니다. 아카이브 이름의 일부로 시간/날짜 스탬프를 갖는 것이 편리할 것이라고 생각했기 때문에 최근 이 질문이 나를 매료시켰습니다. 나쁜 생각!

답변2

넌 몰라. 파일이 잘린 것 같습니다. 얼마나 오래? 처음 몇 바이트만 있으면 작업이 완료된 것입니다.

답변3

.tar.gz 파일이 생성된 동일한 플랫폼에서 압축을 풀고 있습니까? Solaris와 함께 제공되는 비GNU 버전의 tar와 Linux와 함께 제공되는 GNU tar와 같은 이전 Unix 버전의 tar 간에는 몇 가지 차이점이 있습니다. GNU tar를 사용하여 아카이브의 압축을 풀려면 GNU tar를 사용하여 아카이브를 만드는 것이 가장 좋습니다.

시스템은 어떻게 디스크 공간을 찾나요? 아카이브를 만들 때 디스크가 가득 찼습니까, 아니면 압축을 풀려고 할 때 디스크가 가득 찼습니까?

크론 작업을 사용하여 아카이브를 생성하셨나요? 출력 리디렉션이 없으면 cron은 STDOUT에서 허용하는 출력 크기 제한으로 인해 아카이브에 이상한 작업을 수행할 수 있습니다. cron에서 아카이브를 만들고 -vwith 를 사용하는 경우 tarSTDOUT을 파일로 리디렉션하고 STDERR도 파일로 리디렉션해 보세요. 도움이 되는지 확인해 보세요. tar -cvf archive.tar.gz /path/ 1>archive.stdout.log 2>archive.stderr.log또는 그런 것.

답변4

최근에 이 문제가 발생했는데 해결 방법은 파일 이름을 바꾸는 것이었습니다(delete _). 예를 들어 잘못된 파일 이름으로 인해 문제가 발생하는 경우 MAA07-0100-0100-01AAA_show_tech_output.tgz이름을 바꾸면 MAA07-0100-0100-01AAA.tgz문제 해결에 도움이 될 수 있습니다.

관련 정보