타르 추출도 자동으로 압축이 풀립니다.

타르 추출도 자동으로 압축이 풀립니다.

내가 달릴 때

tar -cvzf archive.tgz file1 file2 ; rm file1 file2

일반적으로 압축된 타르볼을 생성하지만 그것이 어떻게 가능합니까?

tar -xvf archive.tgz

압축되지 않은 파일을 반환하시겠습니까? 나는 항상 -z 플래그가 필요하다고 생각했습니다.

답변1

귀하의 tar구현(아마 첫 번째 구현)은 압축에 대한 인수 1GNU 로 전달된 파일을 감지합니다.

tar현재 가장 일반적인 구현은 파일의 첫 번째 바이트(매직 넘버라고도 함)를 GNU tar보고 파일이 압축되었는지 여부와 사용할 압축 알고리즘을 결정하는 것입니다.busybox

tar원래 AT&T 코드를 기반으로 한 상용 Unix에서의 구현은 처음에는 이 플래그를 지원하지 않았습니다 -z. 주목할만한 예외 중 하나 tar는 파일 형식을 감지하는 기능을 포함하여 이 확장이 추가된 Solaris 11입니다 .

1 다른 게시물에서 이미 언급한 것처럼 GNU tar는 stdin을 통해 전달된 파일이 압축되었는지 감지하지 않습니다.회신하다그리고SensorSmith의 리뷰.

답변2

Star는 자동 압축 감지 및 자동 압축 풀기를 도입합니다. 20 년 전에.

오늘날 일부 다른 tar 구현(예: gtar)은 이 아이디어를 복사합니다.

참고: star는 올바른 압축 해제 방법을 감지하기 위해 압축된 스트림의 매직 넘버를 이해합니다. 또한 stdin지정된 파일에서 압축된 아카이브를 읽을 때 gtar가 실패한다는 점에 유의하세요.

답변3

-z이 옵션은 두 가지 잘 알려진 tar 구현인 GNU tar 및 BSD tar(a.k.a.무료 아카이브). 필요한 압축 알고리즘을 감지하는 것은 입력 파일의 처음 몇 바이트를 검사하는 것만큼 간단합니다.

이러한 구현 중 하나를 사용하는지 여부는 주로 Linux 기반 시스템 또는 BSD 시스템(OSX 포함)을 사용하는 운영 체제에 따라 달라집니다.

내 페이지에 이러한 기능이 언제 도입될지에 대한 세부 사항을 요약했습니다.타르와 이식성.

관련 정보