이 글은 양주종의 코딩스쿨 리눅스(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 명령어 옵션 정리 및 사용법
'OS > Linux' 카테고리의 다른 글
리눅스 기초 30강 시리즈 - 22강 파일 분류 (0) | 2023.02.04 |
---|---|
리눅스 기초 30강 시리즈 - 21강 권한의 이해 (0) | 2023.02.04 |
리눅스 기초 30강 시리즈 - 19강 ftp client 사용법 (0) | 2023.02.03 |
리눅스 기초 30강 시리즈 - 18강 C언어코딩(gcc) (0) | 2023.01.26 |
리눅스 기초 30강 시리즈 - 17강 vim 편집기 (1) | 2023.01.26 |