본문 바로가기
OS/Linux

리눅스 기초 30강 시리즈 - 20강 압축(gzip/xz/tar)

by HJ0216 2023. 2. 4.

이 글은 양주종의 코딩스쿨 리눅스(Linux) 기초 강좌 30강 모음 수강하며 정리한 글입니다.

 

20강 압축(gzip/xz/tar)

(일반 사용자 id: j, pw: j)

(관리자 id: root, pw: r)

 

 

1. dir 내 파일 목록 조회

[j@hj0216 ~/down]$ ls -lh
합계 10M
-rw-rw-r--. 1 j j 9.4M  2월  3 23:02 httpd-2.4.55.tar.gz
-rw-r--r--. 1 j j 655K  2월  3 23:28 y

 

2. 압축(gzip dir_name)

[j@hj0216 ~/down]$ gzip y
[j@hj0216 ~/down]$ ls -lh
합계 9.5M
-rw-rw-r--. 1 j j 9.4M  2월  3 23:02 httpd-2.4.55.tar.gz
-rw-r--r--. 1 j j 133K  2월  3 23:28 y.gz

* dir y: 655K -> 133K

 

3. 압축풀기(gunzip file_name.gz)

[j@hj0216 ~/down]$ gunzip y.gz
[j@hj0216 ~/down]$ ls -lh
합계 10M
-rw-rw-r--. 1 j j 9.4M  2월  3 23:02 httpd-2.4.55.tar.gz
-rw-r--r--. 1 j j 655K  2월  3 23:28 y

 

3. 압축(xy dir_name)

[j@hj0216 ~/down]$ xz y
[j@hj0216 ~/down]$ ll -h
합계 9.5M
-rw-rw-r--. 1 j j 9.4M  2월  3 23:02 httpd-2.4.55.tar.gz
-rw-r--r--. 1 j j  98K  2월  3 23:28 y.xz

* dir y: 655K -> 98K

// gzip보다 압축률이 높으나 압축률이 높을수록 압축시간이 오래 소요됨

 

4. 압축풀기(gunzip file_name.gz)

[j@hj0216 ~/down]$ unxz y.xz
[j@hj0216 ~/down]$ ll -h
합계 10M
-rw-rw-r--. 1 j j 9.4M  2월  3 23:02 httpd-2.4.55.tar.gz
-rw-r--r--. 1 j j 655K  2월  3 23:28 y

 

 

* FTP server에서 다운받은 httpd-2.3.55.tar.gz 압축 및 압축풀기

1. 압축 풀기

[j@hj0216 ~/down]$ ll -h
합계 10M
-rw-rw-r--. 1 j j 9.4M  2월  3 23:02 httpd-2.4.55.tar.gz
-rw-r--r--. 1 j j 655K  2월  3 23:28 y
[j@hj0216 ~/down]$ gunzip httpd-2.4.55.tar.gz
[j@hj0216 ~/down]$ ls -lh
합계 43M
-rw-rw-r--. 1 j j  43M  2월  3 23:02 httpd-2.4.55.tar
-rw-r--r--. 1 j j 655K  2월  3 23:28 y

* tab: 자동완성

 

2. tar 묶음 풀기(tar xf tar_file_name.tar)

[j@hj0216 ~/down]$ tar xf httpd-2.4.55.tar
[j@hj0216 ~/down]$ ls -lh
합계 43M
drwxr-xr-x. 12 j j 4.0K  1월 10 22:38 httpd-2.4.55
-rw-rw-r--.  1 j j  43M  2월  3 23:02 httpd-2.4.55.tar
-rw-r--r--.  1 j j 655K  2월  3 23:28 y

tar xf command를 통해 묶음 파일 해제(-> httpd-2.4.55 dir 생성)

tar: Tape ARchiver, tar은 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령

-x: extract, tar ARchive에서 파일 추출(묶음 풀 때 사용)

-f: 대상 tar ARchive 파일 지정(Default Option)

* 압축 과정: 파일을 하나로 묶기 -> 압축하기

 

cf. 현재 디스크 용량을 특정 dir, file 단위로 확인

[j@hj0216 ~/down]$ du -sh httpd-2.4.55
49M     httpd-2.4.55

du: disk use

-s: summerize, 하위 dir은 합쳐서 전체 용량만 출력

-h: human readable, 파일 용량을 사람이 보기 쉬운 상태로 출력

 

3. tar 묶음 파일 만들기(tar cf tar_file_name.tar)

[j@hj0216 ~/down]$ tar cf h.tar httpd-2.4.55
[j@hj0216 ~/down]$ ls -lh
합계 86M
-rw-rw-r--.  1 j j  43M  2월  3 23:37 h.tar
drwxr-xr-x. 12 j j 4.0K  1월 10 22:38 httpd-2.4.55
-rw-rw-r--.  1 j j  43M  2월  3 23:02 httpd-2.4.55.tar
-rw-r--r--.  1 j j 655K  2월  3 23:28 y

-c: create, tar ARchive 생성, 기존 ARchive에 덮어쓰기(파일 묶을 때 사용)

 

4. tar 파일 압축

[j@hj0216 ~/down]$ gzip h.tar
[j@hj0216 ~/down]$ ls -lh
합계 53M
-rw-rw-r--.  1 j j 9.4M  2월  3 23:37 h.tar.gz
drwxr-xr-x. 12 j j 4.0K  1월 10 22:38 httpd-2.4.55
-rw-rw-r--.  1 j j  43M  2월  3 23:02 httpd-2.4.55.tar
-rw-r--r--.  1 j j 655K  2월  3 23:28 y

 

5. 파일 묶기 및 압축

[j@hj0216 ~/down]$ tar cfz hh.tar.gz httpd-2.4.55
[j@hj0216 ~/down]$ ls -lh
합계 62M
-rw-rw-r--.  1 j j 9.4M  2월  3 23:37 h.tar.gz
-rw-rw-r--.  1 j j 9.4M  2월  3 23:42 hh.tar.gz
drwxr-xr-x. 12 j j 4.0K  1월 10 22:38 httpd-2.4.55
-rw-rw-r--.  1 j j  43M  2월  3 23:02 httpd-2.4.55.tar
-rw-r--r--.  1 j j 655K  2월  3 23:28 y

-z: gzip 압축

httpd-2.4.55 dir을 hh.tar.gz로 압축

 

(압축 해제 후, dir 중복 방지를 위해 기존 dir 삭제: $ rm -rf httpd-2.4.55)

 

6. 파일 압축해제 및 묶음 풀기

[j@hj0216 ~/down]$ tar xfz hh.tar.gz
[j@hj0216 ~/down]$ ls -lh
합계 62M
-rw-rw-r--.  1 j j 9.4M  2월  3 23:37 h.tar.gz
-rw-rw-r--.  1 j j 9.4M  2월  3 23:42 hh.tar.gz
drwxr-xr-x. 12 j j 4.0K  1월 10 22:38 httpd-2.4.55
-rw-rw-r--.  1 j j  43M  2월  3 23:02 httpd-2.4.55.tar
-rw-r--r--.  1 j j 655K  2월  3 23:28 y

 

 

 

참고 자료

📑 Linux 명령어 | 파일 관리 | du 명령어 디스크 용량을 특정 디렉토리/파일

📑 Linux(리눅스) : tar 명령어 옵션 정리 및 사용법