tar
디렉토리와 모든 내용의 아카이브를 생성하면 아카이브의 크기가 모든 원본 파일의 크기를 합친 것보다 큽니다.
왜 그럴까요?
파일 크기를 확인하는 데 사용하고 있습니다 ls -l
.
나는 create archive 를 사용하고 있습니다 tar -cvf archive directory
.
답변1
tar
아카이브에 저장된 파일에 대한 이름과 기타 메타데이터를 기록합니다. 이 정보만으로도 파일당 저장 바이트 수가 필요합니다.
차단으로 인해 tar 파일 내에 빈 공간이 많이 있을 수도 있습니다. 몇 가지 좁은 테스트에서 0바이트 파일을 저장하고 2560바이트 tar 파일을 얻었습니다. 1000개의 0바이트 파일이 약 1.5MB의 아카이브를 생성했습니다.
tar
예를 들어 압축 플래그 없이 사용하면 z
더 큰 파일 외에는 아무것도 얻을 수 없습니다.
답변2
1977년 기록은 TAR
파일당 512바이트의 메타데이터를 기록합니다.
크기가 500바이트인 파일을 아카이브하는 경우 아카이브에 필요한 공간은 순수 파일 내용에 비해 두 배 이상 증가합니다.
이를 파일 시스템의 파일 오버헤드와 비교하면 일반적으로 파일 시스템에서 파일에 필요한 전체 공간보다 적습니다.
참고: 1997년에 Solaris는 새로운 향상된 TAR
아카이브 형식을 도입했습니다. 이 형식은 POSIX.1-2001에 의해 표준화되었습니다. pax
또는 이라고 합니다 tar with extended headers
.
이는 tar with extended headers
임의의 해상도와 임의 길이의 파일 이름으로 타임스탬프를 보관하는 것을 지원합니다. 확장된 헤더가 있는 아카이브에는 TAR
파일당 최소 1536바이트의 오버헤드가 필요합니다. 파일 시스템에는 inode 정보, 디렉터리 항목, ACL 및 기타 향상된 메타데이터가 필요하고 일반적으로 파일 내용을 목록에 저장할 때 파일 크기를 1..8KB로 반올림하므로 이는 여전히 일반적인 파일 시스템의 오버헤드에 지나지 않습니다. 파일 시스템의 백엔드에 저장된 블록 수.