본문으로 바로가기


※ Linux 리눅스 압축, 해제  ( tar / gzip gz / bzip2 bz2 )


- 윈도우즈(Windows) 에서의 압축은 zip 등의 방식으로 파일이나 폴더들을 묶음과 동시에 압축(compress) 하는 것을 의미하나 

리눅스(Linux)에서는 파일이나 폴더들을 묶는 것(archive)과 실제로 압축(compress)하는 기능으로 세분화 되어있었다.


 리눅스에서 여러 파일을 한 파일로 묶은 것아카이브(archive)라 하며 확장자는 .tar (tape archives)이다.

그리고 보통 위에서 생성된 tar(아카이브) 파일을 다시 gzip을 사용하여 압축해서 .tar.gz의 확장자를 가지는 압축 아카이브파일을 실무에서 많이 사용하고 있다.


* 이미지 출처 - 제타위키 


압축 확장자: tar, tgz(=tar.gz), bz2

압축률: tar ≪ tgz(권장) < bz2



tar  (tape archives)

■ 개요
압축/해제 리눅스 명령어 + 해당 파일 형식
UNIX 계열 표준 형식
여러 파일을 하나의 파일로 묶는다

■ 명령어
tar

■ 옵션
-x : 압축 파일 풀기 ( create )
-c : 압축 파일 생성 ( extract /  get )
-z : gzip방식 사용 ( gzip / gunzip / ungzip )
-j bzip2방식 사용 ( bzip2 )
-p : 권한(permission)을 원본과 동일하게 유지 ( permission )
-v : 묶음/해제 과정을 화면에 표시 ( verbose )
-f : 파일 이름을 지정 ( file )
--exclude : 특정 폴더나 파일을 제외할때 사용 (리스트로 가능)

■ 예제
$ tar -czvf [압축 파일 이름] [압축 대상 파일, 폴더명]
$ tar -czvf [압축 파일 이름] [압축 대상 파일, 폴더명] --exclude 제외할 폴더나 파일명1 --exclude 제외할 폴더나 파일명2
$ tar -xzvf [압축 해제할 압축 아카이브 이름]

1. test폴더 아카이브생성 + 압축  (tar.gz)
$ tar -cvzf test.tgz test/     
$ tar -cvzf test.tgz test/ --exclude test/123.txt     (123.txt제외 하고 압축)

2. 압축 해제 
$ tar -xvzf test.tar.gz



gz ( gzip / gunzip )

■ 개요
파일 압축에 쓰이는 응용 소프트웨어
ZIP 파일포맷과 같이 DEFLATE 알고리즘을 따르지만, 여러 파일을 하나의 파일로 압축하는 옵션이 없다는 점에서 차이가 있음
여러 파일 또는 디렉터리를 하나의 파일로 압축하기 위해 보통 Tar와 함께 사용됨

■ 명령어
 gzip    -  압축 (.gz)
 gunzip -  gzip으로 압축된 파일을 압축 해제하는 명령어

■ 옵션
-n: n은 1부터 9사이의 숫자를 지정, 1은 가장빠른 압축, 9는 가장 느린 압축
-c: 압축 결과를 출력하고, 원본 파일은 그대로 둔다.
-d: 압축 해제 옵션, gunzip과 같음
-f: 강제 압축
-l: 압축 파일의 정보 출력
-r: 디렉토리를 지정 시 디렉토리에 포함된 모든 파일 압축
-t: 압축 파일 테스트
-v: 자세한 정보 출력
-h: 도움말 출력
-V: 버전 정보 출력
 
■ 예제
$ gzip [압축 파일 이름] [압축 대상 파일, 폴더명]

1. 압축
$ gzip text.txt

2. 압축 해제
$ gunzip text.txt.gz



bz2 ( bzip2 / bunzip2 )

■ 개요
1996년 공개된 압축 소프트웨어
버로우즈-휠러 변환 기반의 압축 알고리즘 및 압축 소프트웨어
버로우즈-휠러 변환 → MTF 변환 → 허프만 부호화
보통 gzip, ZIP보다 압축률이 좋지만 약간 느림

■ 명령어
 bzip2    -  압축 (.bz2)
 bunzip2 -  bzip2 로 압축된 파일을 압축 해제하는 명령어

■ 옵션
-c --stdout : 압축되거나 압축을 푼 파일을 표준출력으로 보낸다.
-d --decompress : 압축을 푼다.
-z --compress : 파일을 압축한다.
-f --force : 압축하거나 압축 해제 시 같은 이름의 파일이 있을 경우 덮어쓴다.
-k --keep : 원본파일을 보존하며 압축하거나 해제한다.
-v --verbose : 상세한 정보를 출력한다.
- 1~-9 : 압축시 블록 크기를 지정한다.

■ 예제
$ bzip2 [압축 파일 이름] [압축 대상 파일, 폴더명]

1. 압축
$ bzip2 text.txt

2. 압축 해제
$ bunzip2 text.txt.bz2



Reference

https://zetawiki.com/ 외


더 효율적이고 다양한 방법이 있겠지만 글쓴이가 주로 실무에서 사용하는 방법을 정리할 겸 포스팅합니다. :)

궁금한 점이나 오타, 수정, 요청 사항은 댓글로 남겨주세요. (로그인 없이 가능)