[Linux] tar, gzip, zip: 압축과 해제 방법

리눅스를 사용하다 보면
파일이나 디렉토리를 압축하거나
압축을 푸는 일이 자주 생깁니다.

특히 백업이나 파일 전송, 시스템 관리 작업에서
tar, gzip, zip은 꼭 알아야 하는 명령어입니다.


✔ tar로 폴더 묶기
✔ gzip, gunzip으로 압축/해제
✔ zip, unzip으로 윈도우 호환 압축 관리


압축과 해제를 위한 주요 명령어

1. tar: 여러 파일을 하나로 묶기 (압축 아님)

tar은 압축이 아니라 아카이브(묶기) 기능입니다.

tar -cvf archive.tar myfolder/
  • -c: 새 아카이브 생성
  • -v: 진행 상황 출력 (선택 사항)
  • -f: 파일 이름 지정
    → myfolder를 archive.tar로 묶습니다.

압축 해제 (풀기)

tar -xvf archive.tar
  • -x: 압축 해제 (extract)
  • -v, -f: 동일

2. tar + gzip: 확실한 압축(.tar.gz 또는 .tgz)

tar -czvf archive.tar.gz myfolder/
  • -z: gzip으로 압축까지 함께

압축 해제는?

tar -xzvf archive.tar.gz

3. gzip, gunzip: 개별 파일 압축/해제

압축

gzip example.txt

→ example.txt.gz로 변환되고 원본은 사라집니다.

압축 해제

gunzip example.txt.gz

→ 다시 example.txt로 복구됩니다.


4. zip: 윈도우와 호환되는 압축 방식

zip archive.zip file1.txt file2.txt

→ 여러 파일을 archive.zip으로 압축

zip -r archive.zip foldername/

→ 폴더 전체 압축 (-r: recursive)

압축 해제

unzip archive.zip

결론

리눅스에서는 상황에 맞게 다양한 압축 도구를 사용할 수 있습니다.

  • 여러 파일을 묶고 싶다면? → tar
  • 묶으면서 압축까지? → tar.gz
  • 개별 파일 압축은? → gzip
  • 윈도우에서도 호환되게? → zip