짧은 이야기 : tar GNU 도구는 아무도 신경 쓰지 않기 때문에 zip / unzip을 통해 파이프하지 않습니다.
긴 이야기, 원래 크기 :
tar
처음에는 파일을 압축 해제하고 압축하기위한 것이 아니라 여러 파일을 하나의 큰 파일로 보관하는 것이 었습니다. 사람들은 파일을 아카이브 할뿐만 아니라 압축하기도하므로 tar
데이터 스트림 입력을 허용하고 결과를 파일로 끌어 오는 압축기를 통해 출력을 파이프하기 만하면 됩니다. 이익!
이제 이러한 작업을 가능한 한 어려움없이 수행 tar
하기 위해 gzip, lzma 등과 같은 압축 도구에 생성 된 파일을 내부적으로 파이프하기로 결정했습니다.이 파일은 실행할 때 각 형식에 대해 특수 플래그로 활성화되었습니다 tar
. 그래서 손상된 파일을 추출하려고하면의 tar
대신 기본 도구 오류가 표시됩니다 tar
.
$ tar zxf damaged.tar.gz
gzip: damaged.tar.gz: unexpected end of file
따라서 tar
zip 파일의 압축을 풀지 tar
않는 것은 아닙니다. 실제로 아무도 그것을 구현하는 것을 방해하지 않았기 때문에 zip 파일의 파일 보관 기능을 달성하지 못했기 때문에 올바른 도구를 통해 압축 할 수있는 기능이 없습니다. tar가 그것을 지원할 이유가 적다.
이제 여러분이 던지는 모든 것을 압축 / 압축 해제하는 올인원 도구가 있습니다. 실제로이를 지원하려면 올바른 도구가 필요합니다. 그것들이 없으면 도구가 실패합니다.
bsdtar
를 추출 할 수.zip
있습니다 : P