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 옵션 이후 경로 입
'linux' 카테고리의 다른 글
디스크관리 1 (0) | 2023.03.06 |
---|---|
사용자 그룹관리(/etc/passwd와 /etc/group) (0) | 2023.03.04 |
파일과 디렉토리의 권한 설정 (0) | 2023.03.02 |
link 파일: hardlink와 Symboliclink (0) | 2023.03.02 |
리눅스 기본명령어 (0) | 2023.02.28 |