널리 사용되는 도구가 통합되어 있기 때문에 종종 서로 혼동되는 최소한 4 개의 개별 작업이 있습니다.
- 아카이빙 : 여러 파일 (메타 데이터 포함)을 단일 파일로 결합하여 가능한 많은 것을 보존하는 기능. Linux / Unix 세계에서 아카이브는 전통적으로 TAR 파일 형식으로 수행됩니다.
- 압축 : 이진 데이터 스트림의 크기를 무손실로 최소화하는 기능. Linux / Unix 세계에서는 전통적으로 GZip 및 BZip2가이를 수행합니다.
- 암호화 : 키를 사용하여 데이터를 스크램블하는 기능
- 체크섬 : 오류를 감지하고 수정하는 기능.
.tar.gz 및 .tar.bz의 편재는 모든 작업을 수행하는 단일 도구보다 단일 작업을 잘 수행하는 작은 도구의 Unix 철학에 해당합니다. TAR 파일 형식은 압축 또는 암호화를 지원하지 않지만 모든 압축기 (.tar.zip 또는 .tar.7z 포함)를 통해 추가로 압축 할 수 있습니다. GZip 및 BZip2의 작업은 단순히 파일 스트림을 다른 파일 스트림으로 압축하는 것이므로 압축 계층은 메타 데이터 또는 암호화 또는 체크섬을 보존하는 방법을 신경 쓸 필요가 없습니다. 그러나 시간이 지남에 따라 tar
컴프레서와 더 편리하게 작업 할 수 있도록 프로그램 에서 몇 가지 단축키가 만들어졌습니다 .
zip 및 7z 파일 형식에서 이러한 개별 작업은 단일 수퍼 파일 형식의 단일 프로그램에 의해 수행됩니다.
이러한 형식이 모두 휴대용 형식인데도 왜 이러한 추세가 유지되는 것처럼 보입니까? 특정 플랫폼에서 특정 아카이브 형식을 사용하면 특별한 이점이 있습니까?
프로그램 소스 코드는 완료된 방식이므로 전통적으로 .tar.gz 또는 .tar.bz2로 배포됩니다. 파일 권한, 수정 시간 등을 유지하는 것은 프로그래밍에 사용되는 다양한 도구 (예 : 제작)에 중요하기 때문입니다.
별도의 보관 및 압축 단계는 수년간 잘 작동했으며 보관 및 압축을 자유롭게 혼합하고 일치시킬 수 있다는 분명한 이점이 있으며 더 똑똑한 도구를 개발하여 단점 (2 단계 압축 프로세스)을 쉽게 우회 할 수 있습니다 ( 대부분의 최신 Linux 압축 프로그램은 중간 단계를 숨기고 .tar.gz 또는 .tar.bz2로 직접 압축합니다.
다른 파일 형식으로 이동할 강력한 이유가 없으며, 최신 압축기는 전통을 깨는 것을 정당화하기 위해 압축률이 크게 향상되지 않으며 tar는 모든 것을 충분히 보존 할 수 있습니다.