파일 압축과 묶기

Seong Woong Kim·2023년 1월 10일
0

Linux / Ubuntu

목록 보기
7/14

💡 이 문서는 한빛미디어 - 이것이 우분투/리눅스다를 기반으로 공부하면서 체화를 위해 정리하는 글입니다. 💡



파일 압축하기


  • 리눅스에서 많이 보는 압축 파일의 확장명은 zz, bz2, gz, zip, Z

  • 예전에는 gz를 주로 사용했으나 최근에는 압축률이 더 좋은 xzbz2를 더 많이 사용하는 추세다.



xz

  • 확장명 xz로 압축하거나 풀어준다

  • 비교적 최신 압축 명령으로 압축률이 뛰어나다

xz {파일명}                 # '파일명.xz'를 생성한다. 기존 파일은 삭제됨
xz -d {파일명.xz}           # 압축을 풀어줌. '파일명.xz'의 압축을 풀어서 '파일이름'으로 만듦 / Decompress
xz -l {파일명.xz}           # '파일명.xz' 압축 파일에 포함된 파일 목록과 압축률 등 출력 / List
xz -k {파일명}              # 압축 후 기존 파일을 삭제하지 않고 그대로 둠 / Keep

bzip2

  • 확장명 bz2로 압축하거나 풀어준다
bzip2 {파일명}                 # '파일명.bz2'를 생성한다.
bzip2 -d {파일명.bz2}          # 압축을 풀어줌.'파일명.bz2'의 압축을 풀어서 '파일이름'으로 만듦/ Decompress
== bunzip2 {파일명.bz2}
bzip2 -k {파일명}              # 압축 후 기존 파일을 삭제하지 않고 그대로 둠 / Keep

gzip

  • 확장명 gz로 압축하거나 풀어준다
gzip {파일명}                 # '파일명.gz'를 생성한다.
gzip -d {파일명.gz}           # 압축을 풀어줌. '파일명.bz2'의 압축을 풀어서 '파일이름'으로 만듦/ Decompress
== gunzip {파일명.gz}

zip / unzip

  • Windows용과 호환되는 확장명 zip으로 압축하거나 풀어준다.
zip {새로 생성될 파일명.zip} {압축할 파일 이름}       # 압축할 파일 이름을 '새로 생성될 파일명.zip'으로 생성
                                                    # 기존 파일은 그대로 남아 있음
unzip {압축 파일 이름.zip}                           # '압축 파일 이름.zip' 압축 풀기 / 파일 그대로 유지 




파일 묶기


  • Windows용 압축 프로그램은 ‘파일 압축’‘파일 묶기’를 한꺼번에 진행

    • ex : aaa, bbb 파일 → ccc라는 1개의 파일로 묶인 후, ccc.zip 파일로 압축됨
  • 리눅스 (유닉스)에서는 파일 압축과 파일 묶기를 원칙적으로 별개의 프로그램으로 실행

    • 사용자 편의를 위해 한 번에 할 수 있는 옵션도 제공
  • 파일 묶기의 명령어는 tar이며 묶인 파일의 확장명도 tar


tar

✨ tar ✨

tart(tape, 테이프)는 과거의 저장 장치인 테이프로 백업하기 위해 만들어진 프로그램입니다.
tarar(archive, 아카이버)은 통상적으로 "여러 파일을 하나의 파일로 합치는 프로그램"을 의미합니다.

  • tape archive의 약자로, 파일이나 디렉터리를 특정 시점에 단일 파일 또는 테이프 같은 다른 저장 매체에 백업 또는 복구 (추출) 하기 위해 사용되는 명령어

  • 확장명 tar로 묶음 파일을 만들거나 묶음을 풀어준다.

  • tar 자체는 "데이터의 크기를 줄이기 위한 파일 압축"을 수행하지 않음

    • tar를 통해 하나로 합쳐진 파일을 gzip 또는 bzip2 방식을 사용하여 압축할 수 있는데,
      이 때 gzip 또는 bzip2 명령을 따로 수행하지 않고 tar 명령의 옵션으로 처리할 수 있음.
      이런 이유로, "tar로 압축한다"는 표현이 통용될 수 있는 것
  • tar가 널리 쓰이게 된 이유 중 한 가지는 tar로 묶여지기 전 파일들의 속성과 심볼릭 링크, 디렉토리 구조 등을 그대로 가져갈 수 있는 특징 때문

    • 그래서 최근에는 리눅스 용 프로그램, 데이터, 소스 및 라이브러리 등을 배포하는 용도로 많이 사용됨


사용 예


[동작]
c (소)      | 새로운 묶음을 만듦
x           | 묶인 파일을 풀어줌
t           | 묶음을 풀기 전에 묶인 경로를 보여줌
C           | 묶음을 풀 때 지정된 디렉터리에 압축을 풀어줌. 지정하지 않으면 묶을 때와 동일한 디렉터리


[옵션]
f (필수)    | 묶음 파일 이름 지정.  원래 tar는 테이프 장치 백업이 기본임 (생략하면 테이프로 보내짐)
v           | visual의 이ㅡ미로 파일을 묶거나 푸는 과정을 보여줌 (생략 가능)
J           | tar + xz
z           | tar + gzip
j           | tar + bzip2


[사용 예]
tar cvf {file.tar} /etc/systemd             # 묶기
tar cvfJ my.tar.xz /etc/systemd             # 묶기 + xz 압축
tar cvfz my.tar.gz /etc/systemd             # 묶기 + gzip 압축
tar cvfj my.tar.bz2 /etc/systemd            # 묶기 + bzip2 압축
tar tvf my.tar                              # 파일 확인
tar xvf my.tar                              # tar 풀기
tar Cxvf {디렉터리 경로} my.tar              # 디렉터리 경로에 tar 풀기
tar xfz my.tar.gz                           # gzip 압축 해제 + tar 풀기                      
tar xfj my.tar.bz2                          # bzip2 압축 해제 + tar 풀기




📚 REFRENCE 📚

  1. 이것이 우분투/리눅스다 - 한빛미디어
  2. http://sunguru-infra.blogspot.com/2018/04/centos-66-113-tar-mt.html
profile
성장과 연구하는 자세를 추구하는 AI 연구개발자

0개의 댓글