압축과 아카이브
tar는 압축을 위한 패키지로 해당파일들을 tar. 확장자의 아카이브 파일로 만들어준다.
상세 옵션은 아래와 같다.
tar(Tape Archive)
1. 다수의 파일이나 디렉토리를 하나의 파일로 관리
1.1 백업 or 압축
1.2 사용법
# tar 옵션 생성할파일명 대상파일1 대상파일2 대상파일3 ..
옵션
-c: create 생성 시 필수
-v: 생성 과정을 출력
-f: 파일명 지정 필수
-x: 해제 시 필수 옵션
-t: 아카이브 해제하지 않고 아카이브 내의 파일 출력
-r: 기존 아카이브 파일에 파일 추가
-u: 기존 아카이브 파일의 파일 중 업데이트 된 파일이 있는 경우 추가시 사용
압축옵션 -z : 한번에 gz 파일로 압축 tar cvfz abc.tar.gz a.txt b.txt c.txt
-j : 한번에 bz2파일로 압축 tar cvfj abc.tar.bz2 a.txt b.txt c.txt
-J : 한번에 xz파일로 압축 tar cvfJ abc.tar.xz a.txt b.txt c.txt
예를 들어 설명하면 먼저 a, b, c 라는 이름의 파일을 만들고 abc.tar라는 파일로 압축하였다.
그리고 기존의 txt 파일을 삭제후 abc.tar 파일을 압축해제하면 내부의 a.txt, b.txt, c.txt가 해제되었음을 확인할 수 있다.
그리고 rvf 명령어를 사용하면 기존의 tar 파일에 내부 파일을 추가할 수 있으며, 압축해제를 확인하고 내부 파일을 확인하려면 tvf 명령어를 쓰면된다. 아래 실행결과를 보면 rvf 명령어로 abc.tar에 c.txt 파일을 추가하였고, tvf 명령어를 통해 반영되었음을 확인할 수 있다.
압축
압축은 특정한 확장자로 파일을 합치는 방법으로 크게 3가지가 있으며 내용은 아래와 같다.
1. zip : 윈도우와의 호환성 때문에 사용, 설치 필요
# yum install -y zip unzip
1.1 사용법
# zip ab.zip a.txt b.txt
압축 파일명, 압축될파일1 압축될파일2
# unzip 압축파일명
예시는 다음과 같다.
a.txt 파일과 b.txt을 zip으로 압축하였고, 기존의 txt 파일을 삭제후 unzip 명령어로 압축해제를 확인할 수 있다.
아래 세가지 압축방법 명령어는 동일하며 확장자명만 수정해주면 된다.
bzip2 확장자에 대해서만 실습을 보이고자한다.
2. gzip : Linux 기본 압축 프로그램
2.1 사용법
# gzip 아카이브 파일명 -> 아카이브 파일.gz
# gzip =1~9 아카이브 파일명 -> 1은 속도 빠르지만 압축률이 낮아짐, 9는 압축률은 높아지고 속도는 느려짐
# gunzip 아카이브파일명.gz
# gzip -d 아카이브파일명.gz
3. bzip2: gzip에 비해서 압축율 30% 정도 향상, 설치 필요
# bzip2 아카이브 파일명 -> 아카이브 파일.bz2
# bzip =1~9 아카이브 파일명 -> 1은 속도 빠르지만 압축률이 낮아짐, 9는 압축률은 높아지고 속도는 느려짐
# bunzip 아카이브파일명.bz2
# bzip2 -d 아카이브파일명.bz2
abc.tar 파일을 bzip2 명령어를 이용해 abc.tar.bz2 파일로 만들어 준다.
이를 다시 아카이브 파일로 압축해제를 하려면 bunzip2 명령어를 쓰면 된다.
bunzip2 abc.tar.bz2 명령어를 통해 다시 abc.tar 파일을 확인 할 수 있다.
4. xz: bzip2의 느린 속도 개선
# xz 아카이브 파일명 -> 아카이브 파일.xz
# xz =1~9 아카이브 파일명 -> 1은 속도 빠르지만 압축률이 낮아짐, 9는 압축률은 높아지고 속도는 느려짐
# unxz 아카이브파일명.xz
# xz -d 아카이브파일명.xz
# 다른 경로에 압축을 풀시에는 -C 옵션 이후 경로 입