홈페이지 » 어떻게 » 오늘 Tar 파일 형식을 사용할 때의 이점은 무엇입니까?

    오늘 Tar 파일 형식을 사용할 때의 이점은 무엇입니까?


    tar 보관 형식은 컴퓨팅 시대에 실제적인 메듀 셀라이지만 여전히 오늘날에도 여전히 많이 사용되고 있습니다. tar 형식을 시작 후 오랫동안 유용하게 만드는 이유는 무엇입니까??

    오늘의 질문 및 답변 세션은 Q & A 웹 사이트의 커뮤니티 중심 그룹 인 Stack Exchange의 하위 부문 인 수퍼 유저의 도움으로 이루어졌습니다..

    질문

    수퍼 유저 MarcusJ는 tar 형식에 대해 궁금해하며 왜이 년 후에도 왜 우리는 여전히 그것을 사용하고 있습니까?

    나는 tar이 테이프 아카이브를 위해 제작되었다는 것을 알고 있지만, 오늘날 우리는 동일한 논리적 파일 형식으로 파일을 집계하고 압축하는 아카이브 파일 형식을 가지고 있습니다.

    질문 :

    • 동일한 데이터 구조에서 집계 및 압축을 수행하는 파일 형식을 사용하는 것과 비교할 때 gzip 또는 bzip2에 캡슐화 된 tar를 사용하는 경우 집계 / 압축 / 압축 해제 단계에서 성능이 저하됩니까? 비교되는 압축기의 런타임이 동일하다고 가정합니다 (예 : gzip 및 Deflate가 유사 함).
    • .7z 및 .zip과 같은 다른 파일 형식에는없는 tar 파일 형식의 기능이 있습니까??
    • tar는 오래된 파일 형식이기 때문에 새로운 파일 형식이 존재하기 때문에 오늘날 GNU / Linux, Android, BSD 및 기타 유닉스에서 여전히 널리 사용되는 tar (gzip, bzip2 또는 새로운 xz로 캡슐화되었는지 여부)은 왜 tar입니까? 운영 체제, 파일 전송, 프로그램 소스 및 바이너리 다운로드, 때로는 패키지 관리자 형식?

    그것은 매우 합리적인 질문입니다. 지난 30 년 동안 컴퓨팅 분야에서 많은 변화가 있었지만 여전히 타르 형식을 사용하고 있습니다. 이야기는 무엇인가??

    대답

    수퍼 유저 기고 가인 Allquixotic은 tar 형식의 수명과 기능에 대한 통찰력을 제공합니다.

    파트 1 : 성능

    다음은 두 개의 개별 워크 플로와 이들이 수행하는 작업을 비교 한 것입니다..

    디스크에 파일이 있습니다. blah.tar.gz 압축되지 않은 경우 1GB의 gzip 압축 데이터가 2GB를 차지하므로 압축률은 50 %입니다..

    아카이브와 압축을 별도로 수행해야한다면 다음과 같이 할 수 있습니다.

    tar cf blah.tar 파일 ... 

    이로 인해 blah.tar 이는 단순한 파일 ...  압축되지 않은 형태로.

    그럼 너는 할거야.

    gzip blah.tar 

    이것은 blah.tar 디스크에서 gzip 압축 알고리즘을 통해 압축하고 blah.tar.gz, 파일의 링크를 해제 (삭제)합니다. blah.tar.

    자, 압축 풀어 보자.!

    웨이 1

    너는있어. blah.tar.gz, 편도 또는 다른 방법.

    당신은 다음과 같이 결정합니다 :

    gunzip blah.tar.gz 

    이것은

    • 1GB의 압축 된 데이터 내용 읽기 blah.tar.gz.
    • 압축 된 데이터를 gzip 메모리에서 압축 풀기 프로그램.
    • 메모리 버퍼가 "한 블록"의 데이터로 가득 차면 압축되지 않은 데이터를 파일에 기록합니다blah.tar 디스크에 저장하고 모든 압축 된 데이터를 읽을 때까지 반복.
    • 파일 연결 해제 (삭제) blah.tar.gz.

    이제, 당신은 blah.tar 디스크에 압축되지 않은 하나 이상의 파일이 들어 있으며 매우 낮은 데이터 구조 오버 헤드가 있습니다. 아마도 파일 크기가 아마도 몇 바이트 모든 파일 데이터의 합보다 클 수 있습니다..

    너는 달린다 :

    타르 xvf blah.tar 

    이것은

    • 2GB의 비 압축 데이터 내용 읽기 blah.tar 그리고 타르 파일 사용 권한, 파일 이름, 디렉토리 등에 대한 정보를 포함하는 파일 형식의 데이터 구조.
    • 2GB의 데이터와 메타 데이터를 디스크에 기록합니다. 데이터 구조 / 메타 데이터 정보를 디스크에 새 파일 및 디렉토리를 적절하게 작성하거나 기존 파일 및 디렉토리를 새 데이터 내용으로 다시 작성하는 작업.

    총 데이터 독서 이 프로세스에서 디스크에서 1GB (gunzip 용) + 2GB (tar 용) = 3GB.

    총 데이터 WROTE 이 프로세스에서 디스크는 2GB (gunzip 용) + 2GB (tar 용) + 메타 데이터 용 몇 바이트 = 약 4GB.

    웨이 2

    너는있어. blah.tar.gz, 편도 또는 다른 방법.

    당신은 다음과 같이 결정합니다 :

    타르 xvzf blah.tar.gz 

    이것은

    • 1GB의 압축 된 데이터 내용 읽기 blah.tar.gz, 한 번에 한 블록 씩 메모리에 저장.
    • 압축 된 데이터를 gzip 메모리에서 압축 풀기 프로그램.
    • 메모리 버퍼가 가득 차면 파이프 그 데이터는 메모리에서 타르 파일 형식 파서는 메타 데이터 등에 관한 정보와 압축되지 않은 파일 데이터를 읽습니다..
    • 메모리 버퍼가 타르 파일 파서를 사용하면 압축되지 않은 데이터를 디스크에 쓰거나 파일과 디렉토리를 작성한 다음 압축되지 않은 내용으로 채 웁니다.

    총 데이터 독서 이 과정에서 디스크에서 1GB의 압축 데이터, 기간.

    총 데이터 WROTE 이 프로세스에서 디스크에 2GB의 비 압축 데이터 + 메타 데이터에 대한 몇 바이트 = 약 2GB.

    디스크 I / O의 양이 웨이 2 ~이다. 같은 예를 들어, 디스크 I / O가 수행 한 디스크 I / O 지퍼 또는7-Zip 프로그램, 압축비의 차이 조정.

    압축률을 고려한다면 Xz 캡슐화 할 압축기 타르, 그리고 LZMA2'ed TAR 아카이브를 사용할 수 있습니다.이 아카이브는 가장 진보 된 알고리즘만큼 효율적입니다. 7-Zip :-)

    2 부 : 기능

    타르 파일 메타 데이터 내에 UNIX 사용 권한을 저장하고, 모든 종류의 다른 사용 권한, 심볼릭 링크 등으로 디렉토리를 성공적으로 채우는 것에 대해 매우 잘 알려져 있고 테스트되었습니다. 여러 파일을 포함해야하는 몇 가지 경우가 있습니다. 단일 파일 또는 스트림이지만 반드시 압축하지 않아도됩니다 (압축은 유용하고 자주 사용되지만).

    3 부 : 호환성

    대부분의 Windows 사용자가 .zip 또는 .rar 압축 풀기 프로그램, 대부분의 Linux 설치 또는 다른 프로그램에 액세스 할 수있는 것처럼 대부분의 도구는 "가장 낮은 공통 분모"파일 형식이므로 .tar.gz 또는 .tar.bz2로 소스 또는 바이너리 형식으로 배포됩니다. 가장 기본적인 것조차도, 얼마나 오래되었거나 쓰러져 있더라도 적어도 타르와 건포도에 접근 할 수 있습니다. 심지어 안드로이드 펌웨어는 이러한 도구에 접근 할 수 있습니다..

    현대 배포판을 실행하는 대상을 대상으로하는 새로운 프로젝트는 .zar (zz 또는 bzip2보다 압축률이 높은 Xz (LZMA) 압축 형식 사용) 또는 .zz와 같은 .zz와 같은 최신 형식으로 배포 할 수 있습니다. Zip 또는 Rar 파일 형식은 여러 파일을 단일 파일로 캡슐화하기위한 레이아웃을 압축하고 지정합니다..

    Opus와 같은 새로운 형식의 온라인 다운로드 상점이나 WebM의 비디오에서 음악을 판매하지 않는 것과 같은 이유로 더 자주 사용되는 .7z는 볼 수 없습니다. 고대 또는 매우 기본적인 시스템을 실행하는 사람들과의 호환성.


    설명에 추가 할 것이 있습니까? 의견에서 소리가 나지. 다른 기술에 정통한 Stack Exchange 사용자의 답변을 더 읽고 싶습니까? 전체 토론 스레드를 여기에서 확인하십시오..