본문 바로가기

OS,Network,Container

리눅스 tar 아카이브란? tar 개념, 실습

반응형

리눅스 tar 아카이브에 대해 알아보고 tar 개념, 실습

 

 

[ Archive ]

 
아카이브란?
여러 파일과 디렉터리를 담고 있는 하나의 파일. 
 
-이동, 공유, 저장이 더욱 간편해짐. 모든 파일이 아카이브 파일에 들어간 후에 관리 및 추적이 더욱 쉬워진다.
출처 : recipes4dev님 티스토리 블로그
 
 
아카이빙의 종류
 
tar
쉽게 공유하거나 백업하려고 디렉터리와 그 안에 있는 파일들의 사본을 만들 때
dd
파티션이나 하드디스크 등을 통째로 복사해야 할 때
rsync
주기적으로 시스템을 백업하려고 할 때
 
 
 
 
 
이 중에서 tar에 대해 알아보겠습니다.
 
 
 
 
 
 
[ tar로 파일과 파일 시스템 아카이빙하기 ]
 
- 사용법 : tar [ option .. ] [file ]
 
# Tar 사용 시 고려해야 할 사항
 
  1. 아카이브에 포함할 파일을 알아둔다.
  2. 아카이브가 사용할 스토리지 드라이브 안의 위치를 확인한다.
  3. 파일을 아카이브에 추가하고 아카이브 파일을 스토리지에 저장한다.
 
 
  • Options
-f
대상 아카이브 지정 (기본 옵션)
-c 
tar 아카이브 생성 (파일 묶을 때 사용)
-x
tar 아카이브에서 파일을 추출 (파일 풀 때 사용)
-v
처리 과정을 자세하게 나열
-t
tar 아카이브에 포함된 내용 확인
-C
대상 디렉터리 경로 지정
-A
지정된 파일을 tar 아카이브에 추가
-r
tar 아카이브의 마지막에 파일들 추가
-u
tar 아카이브의 마지막에 파일들 추가
-k
tar 아카이브 추출 시, 기존 파일 유지
-z
gzip 압축 옵션
-j
bzip2 압축 옵션
 
 
 
 
[ 간단한 실습 ]
 
 
 
 
 
1. tar 아카이브 파일 생성
 
ubuntu@ubuntu:~$ touch file{1..3}
ubuntu@ubuntu:~$ ls
file1  file2  file3

# 현재, 하위 디렉터리 안에 있는 모든 파일과 디렉터리들을 복사해 archives.tar 이름의 아카이브 파일 생성
ubuntu@ubuntu:~$ tar cvf archives.tar *
file1
file2
file3
ubuntu@ubuntu:~$ ls
archives.tar  file1  file2  file3

 

 

 

 

2. 아카이브 압축 파일 생성 / 아카이브 파일 확인 / split을 이용하여 아카이브 파일 나누기

# 절대경로를 사용해서 tar 아카이브 압축 파일을 생성해보겠다.
ubuntu@ubuntu:~$ pwd
/home/ubuntu

# 기존 cvf에 z옵션을 추가하면 gzip으로 압축이 된다. /home/ubuntu/에 있는 ~.mp3 로 끝나는 파일 대상
ubuntu@ubuntu:~$ tar cvfz musicArc.tar.gz /home/ubuntu/*.mp3
tar: Removing leading `/' from member names
/home/ubuntu/music1.mp3
/home/ubuntu/music2.mp3
/home/ubuntu/music3.mp3
/home/ubuntu/music4.mp3
/home/ubuntu/music5.mp3
ubuntu@ubuntu:~$ ls
archives.tar  file2  music1.mp3  music3.mp3  music5.mp3
file1         file3  music2.mp3  music4.mp3  musicArc.tar.gz

# f는 고정옵션, t는 아카이브에 포함된 내용 확인, v는 처리과정을 나열하는 옵션
# musicArc.tar.gz에 어떤 파일들이 들어있는지 확인
ubuntu@ubuntu:~$ tar tfv musicArc.tar.gz
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:32 home/ubuntu/music1.mp3
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:32 home/ubuntu/music2.mp3
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:32 home/ubuntu/music3.mp3
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:32 home/ubuntu/music4.mp3
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:32 home/ubuntu/music5.mp3

# 

# split 명령에서 -b 옵션은 각 크기의 파일들을 일정 크기로 나누어준다. 큰 따옴표 안에는 생성할
# 파일들의 이름을 넣어준다. ls로 확인해보니 aa로 생성되었으며, ab ac 순으로 이름을 부여한다.
ubuntu@ubuntu:~$ split -b 100m archives.tar "archives.tar.part"
ubuntu@ubuntu:~$ ls
archives.tar         file1  file3       music2.mp3  music4.mp3  musicArc.tar.gz
archives.tar.partaa  file2  music1.mp3  music3.mp3  music5.mp3

 

 

 

3. 아카이브 파일을 대상 디렉터리 경로를 지정하여 추출하기

# archives.tar 아카이브 파일을 test디렉터리에 추출하겠다.
ubuntu@ubuntu:~$ ls
archives.tar         file1  file3       music2.mp3  music4.mp3  musicArc.tar.gz
archives.tar.partaa  file2  music1.mp3  music3.mp3  music5.mp3  test
# 만들땐 cvf, 풀 땐 xvf를 사용해주었다. 해당 디렉터리에 풀 시 -C 옵션을 사용하지 않아도 된다.
ubuntu@ubuntu:~$ tar -xvf archives.tar -C ./test
file1
file2
file3
 
 
 
 

4. find 명령을 이용하여 " .mp3 " 로 끝나는 파일의 이름을 찾은 후 tar명령을 실행한다.

 

# iname : i는 대문자, 소문자 구문 없이 모두 검색

# rvf      : r은 이어쓰기 역할이다. tar아카이브의 마지막에 해당 파일들을 추가함

# { }       : 앞에 find 명령을 통해 나온 출력값을 지칭함.

# \;      : 명령이 끝났음을 의미

ubuntu@ubuntu:~$ ls
archives.tar         file1  file3       music2.mp3  music4.mp3  musicArc.tar.gz
archives.tar.partaa  file2  music1.mp3  music3.mp3  music5.mp3  test

ubuntu@ubuntu:~$ pwd
/home/ubuntu

ubuntu@ubuntu:~$ find /home/ubuntu/ -iname "*.mp3" -exec tar -rvf archives.tar {} \;
tar: Removing leading `/' from member names
/home/ubuntu/music4.mp3
tar: Removing leading `/' from member names
/home/ubuntu/music5.mp3
tar: Removing leading `/' from member names
/home/ubuntu/music3.mp3
tar: Removing leading `/' from member names
/home/ubuntu/music2.mp3
tar: Removing leading `/' from member names
/home/ubuntu/music1.mp3

ubuntu@ubuntu:~$ tar -tvf archives.tar
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:22 file1
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:22 file2
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:22 file3
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:32 home/ubuntu/music4.mp3
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:32 home/ubuntu/music5.mp3
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:32 home/ubuntu/music3.mp3
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:32 home/ubuntu/music2.mp3
-rw-rw-r-- ubuntu/ubuntu     0 2020-04-14 22:32 home/ubuntu/music1.mp3

 

반응형

'OS,Network,Container' 카테고리의 다른 글

CentOS7 RAID 1+0 생성  (2) 2020.04.17
CentOS7 RAID 5 구성, parted  (9) 2020.04.16
CentOS7 RAID1 구성, RAID 개념  (0) 2020.04.15
리눅스 방화벽이란? Firewall  (1) 2020.04.15
CentOS7 설치 후 네트워크 설정  (1) 2020.04.14