tar 압축 사용법 tar 압축 풀기 tar 압축 하기
tar 명령어를 이용해 파일을 압축하고 해제 하는 방법을 살펴본다.
- tar.gz 압축하기
1-1.디렉토리 압축하기
압축하여야 할 디렉토리 mysql
압축하여 만들어진 파일 mysql_backup.tar.gz
#tar -czf mysql_backup.tar.gz mysql
(mysql의 상위디렉토리, 즉 mysql이 보이는 곳에서 위의 명령을 실행)
- tar.gz 압축풀기
2-1.파일을 압축 풀기
압축된 파일 mysql_backup.tar.gz
#tar -xzf mysql_backup.tar.gz
※ tar로 묶기만 할 경우 각각 z옵션을 뺀다.
c 옵션 : 묶기
x 옵션 : 묶음풀기
z 옵션 : zip 압축 (tar+gzip으로 압축할 경우, 즉 tar.gz로 만들 경우 이 옵션을 사용한다.)
f 옵션 : tar(.gz)파일명
v 옵션 : 명령을 수행하는 내역을 리스팅 해서 볼때 tar -xzvf mysql_backup.tar.gz 하면
압축이 풀리는 동안 풀리는 파일들이 쭉 리스팅 된다.
tar command files
옵션 - c 지정파일또는 디렉토리를 tar로 묶는다(압축효과 없음:오히려 용량증가)
- x tar의 파일의 묶음을 푼다. (묶음과 압축의 차이점 이해해야함)
- v 묶음의 대상파일을 보여준다.
- r 기존의 tar파일에 파일을 추가한다.
- p 파일의 생성되었을 때의 권한을 그대로 유지하게 해준다.
- z tar.gz의 파일로 압축할때 쓰이는 옵션
- f 작업대상이 되는 tar파일의 이름을 지정한다.
사용예
tar xvfz gnu3.tgz : 압축해제와 묶여짐을 동시에 푼다.
tar cvfzp gnu3.tgz *.php : 현재디렉토리에 있는 *.php로 끝나는 파일을 모두 퍼미션을 유지한 상태에서 묶어서 gnu3.tgz라는 파일로 압축한다.
이밖에도 여러가지 gzip gunzip등의 압축관련명령어가 쓰이지만
sir에서 사용되는 파일들은 tar의 명령어로 사용가능하다.
참고) tar 명령어는 - 를 쓰지 않아도 옵션이 사용가능하다.
tar
여러개의 파일을 하나로 묶는 명령어이다.
압축명령어라고 잘못알고 계시는 분들이 있는데, tar는 분명 여러개의 파일을 하나로 묶어주는 일종의 유틸리티라고 할 수 있다.
하지만, 거의 대부분 tar는 gzip이나 compress등과 같은 압축유틸리티와 함께 사용을 하는 것이 일반적이다.
또한 tar옵션에는 z라는 옵션이 있기 때문에 tar명령어만으로 압축하고 풀 수 있기때문에 tar만으로도 효율적인 파일관리를 할 수있다.
※ 사용형식
파일묶기 : tar cvf 파일명.tar 파일(디렉토리)
묶은파일보기 : tar cvf 파일명.tar
파일풀기 : tar xvf 파일명.tar
묶고압축하기 : tar cvfz 파일명.tar.gz 파일(디렉토리)
묶고압축된 파일 보기 : tar tvfz 파일명.tar.gz
묶고압축된파일 풀기 : tar xvfz 파일명.tar.gz
사용예 #1
다음과 같이 dir1이라는 디렉토리에는 파일두개가 존재하고 있다.
이를 대상으로 tar의 사용법을 설명하도록 하겠다.
[root@host3 command]# ls -l ./dir1
합계 8
-rw-r--r-- 1 root root 120 9월 18 14:11 textfile
-rw-r--r-- 1 root root 68 9월 18 15:26 textfile2
[root@host3 command]#
먼저 위의 디렉토리 dir1에 있는 모든 파일들을 하나의 파일로 묶어보자.
파일을 압축할 때에는 "cvf"라는 옵션을 사용한다.
[root@host3 command]# ls -l
합계 12
-rw-r--r-- 1 root root 10240 9월 20 12:56 dir1.tar
[root@host3 command]#
이제 이 파일(dir1.tar)을 풀어보자.
tar로 묶여진 파일을 풀때에는 "xvf"라는 옵션을 사용한다.
[root@host3 command]# tar xvf dir1.tar
dir1/
dir1/textfile
dir1/textfile2
[root@host3 command]#
자, 이렇게 풀어진 결과를 확인해보자.
[root@host3 command]# ls -l
합계 16
-rw-r--r-- 1 root root 10240 9월 20 12:56 dir1.tar
drwxr-xr-x 2 root root 4096 9월 20 12:55 dir1
[root@host3 command]#
[root@host3 command]# ls -l dir1
합계 8
-rw-r--r-- 1 root root 120 9월 18 14:11 textfile
-rw-r--r-- 1 root root 68 9월 18 15:26 textfile2
[root@host3 command]#
원본파일인 dir1과 동일한 디렉토리와 파일들이 생성되어 있음을 확인할 수 있을 것이다.
원본파일과 풀여진 파일들의 날짜와 시간을 자세히 비교해 보면 파일의 생성날짜와 시간이 원본파일과 동일함을 알 수 있다.
즉, tar로 묶여질때에는 묶여지는 파일들의 생성날짜와 시간정보까지 함께 저장이 되어지며, tar로 풀때에는 이 시간정보를 그대로 적용하여 풀어진다는 것을 알 수있다.
사용예 #4
이번에는 파일을 묶는 작업과 압축을 하는 작업을 동시에 해보도록 하자.
이 작업을 하려면 z라는 옵션을 추가해서 "cvfz"라는 옵션을 사용하면 간단히 묶음과 압축을 동시에 할 수있다.
설명의 편의를 위하여 dir2라는 디렉토리를 작업대상으로 하며 dir2에는 다음과 같은 파일 2개가 들어있다.
[root@host3 command]# ls -al dir2
합계 16
drwxr-xr-x 2 root root 4096 9월 20 13:42 .
drwxr-xr-x 3 root root 4096 9월 20 13:41 ..
-rw-r--r-- 1 root root 120 9월 18 14:11 textfile1
-rw-r--r-- 1 root root 68 9월 18 15:26 textfile3
[root@host3 command]#
자, 그렇다면 묶음과 압축을 동시에 해보도록 하자.
[root@host3 command]# tar cvfz dir2.tar.gz dir2
dir2/
dir2/textfile1
dir2/textfile3
[root@host3 command]#
[root@host3 command]# ls -l
합계 8
drwxr-xr-x 2 root root 4096 9월 20 13:42 dir2
-rw-r--r-- 1 root root 284 9월 20 13:43 dir2.tar.gz
[root@host3 command]#
cvfz라는 옵션을 사용하고 새로 생성되는 파일명을 dir2.tar.gz로 하였다.
묶음과 압축의 결과로 dir2.tar.gz파일이 생성되었음을 알수가 있다.
간단한 명령이므로 어렵지는 않으리라 생각한다.
그리고 이렇게 묶음과 압축이 한번에 된 파일의 내용을 확인하고자 한다면 다음과 같이 "tvfz"옵션을 사용한다.