내가 달릴 때
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가 실패한다는 점에 유의하세요.