어떤 상황에서 gunzip & tar xf는 작동하지만 tar xzf는 실패합니까?

어떤 상황에서 gunzip & tar xf는 작동하지만 tar xzf는 실패합니까?

이것을 설명하기 위해: 나는회사 웹 사이트. tar -xzf 사용이 실패합니다.

$ tar -xzf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz 
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

그러나 gunzip 다음에 tar -xf를 사용하면 정상적으로 작동합니다.

$ gunzip LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz
$ tar -xf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar
# no error

왜 이런 일이 일어나는지 말해 줄 수 있는 사람이 있나요? -표준 tar명령이 항상 작동하기를 원합니다.

답변1

무슨 일이 일어난 것 같습니다더블압축된 아카이브.

gunzip 파일을 실행하면 file여전히 gzip 아카이브임을 알 수 있습니다. 이름을 다시 .gz로 바꾸면 다시 압축할 수 있습니다.

-z최근에는 입력이 파일인 경우 gnu tar가 자동으로 이 옵션을 추가하는 것 같습니다 . 따라서 -z이미 한 번 실행한 gunzip후에는 옵션 없이 작동하고 tar가 자동으로 추가됩니다.

이 동작은 정보 페이지에 설명되어 있습니다.

"압축된 아카이브를 읽는 것이 훨씬 더 간단합니다. GNU `tar'가 자동으로 해당 형식을 인식하므로 추가 옵션을 지정할 필요가 없습니다. [...] 형식 인식 알고리즘은 "서명"을 기반으로 합니다. 일련의 바이트. 일부 압축 형식에 특정한 파일의 시작입니다."

이는 §8.1.1 "압축된 아카이브 생성 및 읽기"에서 가져온 것입니다.

관련 정보