Skip to content

Files

Latest commit

 

History

History
307 lines (253 loc) · 13 KB

파일압출.md

File metadata and controls

307 lines (253 loc) · 13 KB

TAR (Tape Archive)란?

**tar**는 원래 데이터를 테이프에 저장하기 위해 개발된 도구로, 파일이나 디렉토리를 하나의 파일로 묶는 아카이브 도구입니다. tar 자체는 압축 기능은 없지만, 여러 파일이나 디렉토리를 **하나의 묶음(아카이브)**으로 만들기 위한 유틸리티입니다. 따라서, 보통 다른 압축 도구(gzip, bzip2, xz)와 함께 사용되어 묶은 파일을 압축하기도 합니다.

이렇게 묶인 파일은 주로 .tar라는 확장자를 가지며, 이후에 추가로 압축을 적용하면 .tar.gz, .tar.bz2, .tar.xz와 같은 확장자를 가지게 됩니다.

TAR 명령어와 주요 옵션들

tar 명령어는 파일과 디렉토리를 묶거나 해제하는 데 사용되며, 다양한 옵션이 있습니다. 아래에서 각 주요 옵션과 사용 예시를 설명하겠습니다.

주요 옵션 설명

  • -c : Create. 새 아카이브 파일을 생성합니다.
  • -x : Extract. 기존의 아카이브 파일을 해제합니다.
  • -t : List. 아카이브 파일의 내용을 나열합니다.
  • -f : File. 특정 파일을 지정합니다. 이 옵션은 반드시 아카이브 파일 이름과 함께 사용해야 합니다.
  • -v : Verbose. 아카이브 작업 중에 처리 중인 파일 목록을 출력합니다.
  • -z : gzip으로 압축/해제를 수행합니다.
  • -j : bzip2로 압축/해제를 수행합니다.
  • -J : xz로 압축/해제를 수행합니다.
  • -C : Change Directory. 특정 디렉토리로 이동하여 작업을 수행합니다.

사용 예시

1. 파일/디렉토리 묶기 (아카이브 생성)

  • 단순히 묶기 (.tar 파일 생성)

    tar -cvf archive.tar 디렉토리이름/

    예: tar -cvf backup.tar mydata/

    • mydata 디렉토리를 하나의 .tar 파일로 묶습니다.
    • -c : 아카이브 파일 생성
    • -v : 작업 과정을 자세히 출력
    • -f : 파일 이름 지정 (backup.tar)
  • gzip으로 압축하면서 묶기 (.tar.gz 파일 생성)

    tar -czvf archive.tar.gz 디렉토리이름/

    예: tar -czvf backup.tar.gz mydata/

    • mydata 디렉토리를 .tar.gz 파일로 묶고 압축합니다.
    • -z : gzip 방식으로 압축
  • bzip2로 압축하면서 묶기 (.tar.bz2 파일 생성)

    tar -cjvf archive.tar.bz2 디렉토리이름/

    예: tar -cjvf backup.tar.bz2 mydata/

    • mydata 디렉토리를 .tar.bz2 파일로 묶고 압축합니다.
    • -j : bzip2 방식으로 압축
  • xz로 압축하면서 묶기 (.tar.xz 파일 생성)

    tar -cJvf archive.tar.xz 디렉토리이름/

    예: tar -cJvf backup.tar.xz mydata/

    • mydata 디렉토리를 .tar.xz 파일로 묶고 압축합니다.
    • -J : xz 방식으로 압축

2. 파일/디렉토리 압축 해제

  • 단순 아카이브 해제 (.tar 파일 해제)

    tar -xvf archive.tar

    예: tar -xvf backup.tar

    • backup.tar 파일의 압축을 해제하여 묶였던 파일들을 현재 디렉토리로 풉니다.
    • -x : 압축 해제
  • gzip 압축 해제 (.tar.gz 파일 해제)

    tar -xzvf archive.tar.gz

    예: tar -xzvf backup.tar.gz

    • backup.tar.gz 파일의 압축을 풀고, 묶였던 파일들을 현재 디렉토리로 해제합니다.
    • -z : gzip 방식의 압축 해제
  • bzip2 압축 해제 (.tar.bz2 파일 해제)

    tar -xjvf archive.tar.bz2

    예: tar -xjvf backup.tar.bz2

    • backup.tar.bz2 파일의 압축을 풀고, 묶였던 파일들을 해제합니다.
    • -j : bzip2 방식의 압축 해제
  • xz 압축 해제 (.tar.xz 파일 해제)

    tar -xJvf archive.tar.xz

    예: tar -xJvf backup.tar.xz

    • backup.tar.xz 파일의 압축을 풀고, 묶였던 파일들을 해제합니다.
    • -J : xz 방식의 압축 해제

3. 아카이브 파일 목록 확인

  • 아카이브 파일 내의 파일 목록 보기
    tar -tvf archive.tar
    예: tar -tvf backup.tar
    • backup.tar 파일에 포함된 파일들을 목록으로 출력합니다.
    • -t : 아카이브 파일 목록 출력

4. 특정 디렉토리로 압축 해제 (-C 옵션)

  • 특정 경로에 아카이브 파일 해제하기

    tar -xvf archive.tar -C /path/to/directory/

    예: tar -xvf backup.tar -C /home/user/restore/

    • backup.tar 파일을 /home/user/restore/ 경로로 해제합니다.
    • -C : 특정 디렉토리로 이동 후 작업 수행
  • 특정 경로에 아카이브 파일 해제하기2

    tar -cxvf /path/to/directory/ archive.tar

    예: tar -cxvf /home/user/restore/ backup.tar - backup.tar 파일을 /home/user/restore/ 경로로 해제합니다. - -C : 특정 디렉토리로 이동 후 작업 수행

5. 특정 파일/디렉토리만 아카이브에 추가 또는 해제

  • 특정 파일만 압축 해제

    tar -xvf archive.tar 파일이름

    예: tar -xvf backup.tar mydata/file1.txt

    • backup.tar에서 mydata/file1.txt 파일만 해제합니다.
  • 특정 파일만 아카이브에 추가

    tar -rvf archive.tar 파일이름

    예: tar -rvf backup.tar newfile.txt

    • 이미 존재하는 backup.tarnewfile.txt 파일을 추가합니다.
    • -r : 아카이브 파일에 새로운 파일을 추가하는 옵션입니다.

TAR 명령어 사용 예시 요약

  1. 디렉토리 묶기 (압축 없이 .tar 파일 생성):
    tar -cvf archive.tar 디렉토리이름/
  2. gzip 압축하면서 묶기 (.tar.gz 파일 생성):
    tar -czvf archive.tar.gz 디렉토리이름/
  3. bzip2 압축 해제 (.tar.bz2 파일 해제):
    tar -xjvf archive.tar.bz2
  4. 아카이브 파일 목록 보기:
    tar -tvf archive.tar
  5. 특정 경로로 해제하기:
    tar -xvf archive.tar -C /특정/경로/

TAR의 활용과 특징

  • 묶기 및 압축: tar는 여러 파일과 디렉토리를 하나의 파일로 묶을 때 매우 유용하며, 이 후 gzip, bzip2, xz 등을 사용해 추가적으로 압축하는 것이 일반적입니다.
  • 백업: 서버나 시스템 파일의 백업을 위해 전체 디렉토리를 하나의 아카이브 파일로 묶고 압축하여 관리하는 데 많이 사용됩니다.
  • 간편한 파일 관리: 여러 개의 파일과 디렉토리를 묶어 하나로 만들기 때문에 파일 전송, 배포, 관리 등이 훨씬 편리합니다.

이러한 이유로 tar는 Linux 시스템에서 파일 백업, 아카이브 생성, 전송을 위한 기본적인 도구로 널리 사용됩니다. tar와 다른 압축 도구들을 결합하여 다양한 상황에서 유연하게 사용할 수 있습니다.


Linux에서 다양한 파일 압축과 해제 작업을 수행하기 위해 여러 파일 압축 포맷을 사용할 수 있습니다. 여기에서는 xz, bz2, zip 확장명을 중심으로, 각각의 형식의 설명과 관련 명령어를 자세히 설명드리겠습니다.

1. XZ 압축 (.xz)

xz는 고효율 압축 알고리즘인 LZMA2를 사용하여 높은 압축률을 제공하는 도구입니다. tar와 함께 사용하여 여러 파일을 하나로 묶고 압축할 수 있습니다.

주요 명령어

  • 압축

    xz 파일이름

    예: xz example.txtexample.txt 파일을 example.txt.xz로 압축합니다.

  • 압축 해제

    xz -d 파일이름.xz

    또는

    unxz 파일이름.xz

    예: xz -d example.txt.xzexample.txt.xz 파일을 압축 해제하여 원본 파일인 example.txt로 복원합니다.

  • tar와 함께 사용하기 보통 .tar.xz 형태로 묶인 파일을 생성하거나 해제할 때 사용합니다.

    • tar 파일을 압축하면서 .xz로 묶기:

      tar -cJf archive.tar.xz 디렉토리이름/

      예: tar -cJf backup.tar.xz mydata/mydata 디렉토리를 .tar.xz로 묶고 압축합니다.

    • .tar.xz 파일 해제:

      tar -xJf archive.tar.xz

      예: tar -xJf backup.tar.xzbackup.tar.xz 파일을 압축 해제합니다.

2. BZ2 압축 (.bz2)

bz2bzip2 알고리즘을 사용하여 효율적인 압축을 제공하는 형식입니다. gz와 유사하지만 조금 더 높은 압축률을 제공합니다.

주요 명령어

  • 압축

    bzip2 파일이름

    예: bzip2 example.txtexample.txt 파일을 example.txt.bz2로 압축합니다.

  • 압축 해제

    bzip2 -d 파일이름.bz2

    또는

    bunzip2 파일이름.bz2

    예: bzip2 -d example.txt.bz2example.txt.bz2 파일을 압축 해제하여 원본 파일인 example.txt로 복원합니다.

  • tar와 함께 사용하기 보통 .tar.bz2 형태로 묶인 파일을 생성하거나 해제할 때 사용합니다.

    • tar 파일을 압축하면서 .bz2로 묶기:

      tar -cjf archive.tar.bz2 디렉토리이름/

      예: tar -cjf backup.tar.bz2 mydata/mydata 디렉토리를 .tar.bz2 형식으로 묶고 압축합니다.

    • .tar.bz2 파일 해제:

      tar -xjf archive.tar.bz2

      예: tar -xjf backup.tar.bz2backup.tar.bz2 파일을 압축 해제합니다.

3. ZIP 압축 (.zip)

zip은 Windows에서도 많이 사용하는 압축 형식으로, 다양한 운영 체제에서 사용이 가능합니다. 여러 파일과 디렉토리를 하나의 .zip 파일로 묶어 압축할 수 있습니다.

주요 명령어

  • 압축

    zip [옵션] 압축파일이름.zip 파일1 파일2 ...

    예: zip archive.zip example1.txt example2.txtexample1.txtexample2.txt 파일을 묶어 archive.zip 파일을 생성합니다.

    • 디렉토리 압축:

      zip -r 압축파일이름.zip 디렉토리이름

      예: zip -r backup.zip mydata/mydata 디렉토리와 모든 하위 파일을 포함한 backup.zip 파일을 생성합니다.

    • 압축 레벨 조절: -0 (압축 안 함)부터 -9 (최대 압축)까지 선택 가능

      zip -9 max_compressed.zip example.txt

      예: zip -9 example.zip example.txt — 최대 압축률로 example.txt 파일을 압축합니다.

  • 압축 해제

    unzip 압축파일이름.zip

    예: unzip archive.ziparchive.zip 파일의 압축을 해제하여 파일을 현재 디렉토리에 풉니다.

    • 특정 파일만 압축 해제:

      unzip archive.zip 파일이름

      예: unzip archive.zip example1.txtarchive.zip 파일 내에서 example1.txt만 압축 해제합니다.

    • 파일 덮어쓰기 확인 없이 압축 해제:

      unzip -o archive.zip

      예: unzip -o archive.ziparchive.zip을 해제하며 파일이 이미 존재할 경우 덮어쓰기 합니다.

각 압축 도구의 요약

  • xz:

    • xz 파일이름: 파일을 .xz로 압축합니다.
    • xz -d 파일이름.xz: .xz 파일을 해제합니다.
    • tar -cJf archive.tar.xz 디렉토리이름/: 디렉토리를 .tar.xz로 묶어 압축합니다.
    • tar -xJf archive.tar.xz: .tar.xz 파일을 해제합니다.
  • bz2:

    • bzip2 파일이름: 파일을 .bz2로 압축합니다.
    • bzip2 -d 파일이름.bz2 또는 bunzip2 파일이름.bz2: .bz2 파일을 해제합니다.
    • tar -cjf archive.tar.bz2 디렉토리이름/: 디렉토리를 .tar.bz2로 묶어 압축합니다.
    • tar -xjf archive.tar.bz2: .tar.bz2 파일을 해제합니다.
  • zip:

    • zip archive.zip 파일1 파일2 ...: 여러 파일을 묶어 .zip 파일로 압축합니다.
    • zip -r 압축파일이름.zip 디렉토리이름: 디렉토리를 포함하여 .zip 파일로 압축합니다.
    • unzip 압축파일이름.zip: .zip 파일을 압축 해제합니다.
  • gz:

    • gzip 파일이름: 파일을 .gz로 압축합니다.
    • gzip -d 파일이름.gz 또는 gunzip 파일이름.gz: .gz 파일을 해제합니다.
    • tar -czf archive.tar.gz 디렉토리이름/: 디렉토리를 .tar.gz로 묶어 압축합니다.
    • tar -xzf archive.tar.gz: .tar.gz 파일을 해제합니다.

이 세 가지 압축 방식은 각각의 장단점이 있으며, 상황에 맞는 형식을 선택하여 사용하면 됩니다. xzbz2는 높은 압축률을 자랑하지만, 일반적으로는 zip이 여러 운영 체제에서 쉽게 다룰 수 있어 범용성 면에서 많이 사용됩니다. tar과의 조합으로 .tar.xz, .tar.bz2 등과 같은 형식으로 묶어서 사용하면 다수의 파일을 보다 효율적으로 관리할 수 있습니다.