RadarURL
Skip to content
2014.11.18 10:18

TAR 명령어의 모든것

조회 수 773 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

목차

  1. tar 소개
  2. 미리 알아두면 좋을 것들
    1. 옵션주는 방법
    2. -f와 -v옵션이 많이 쓰이는가?
    3. 가장 많이 사용되는 작업
  3. 기본 명령어 활용예
    1. 아카이브 풀기
    2. 아카이브 만들기
    3. 아카이브 내용보기
    4. 퍼미션을 유지하며 아카이브 만들기
    5. tar+gzip 압축하기
    6. tar+bzip2 압축하기
    7. gzip으로 압축된 tar 풀기
    8. bzip2로 압축된 tar 풀기
    9. 허가권(Permission) 유지하며 풀기
  4. 백업에 활용하기
    1. 아카이브에 새 파일 추가하기
    2. 아카이브에 파일 업데이트하기
    3. 아카이브에 파일 삭제하기
    4. 아카이브에서 특정 디렉토리 또는 파일만 풀기
    5. 옛버전 파일 풀기
    6. 아카이브에서 파일 비교하기
  5. 기타

모든 하위 디렉토리에 특정 소스만 묶고 싶을 때는?

TAR 명령어의 모든것

1 tar 소개

주요기능은?

아카이브를 만들거나 푼다.

아카이브란?

아카이브는 여러 파일을 한 파일로 묶은 것을 말한다. tar는 아카이브를 압축하지 않는다. 단지 하나의 파일로 묶을 뿐이다. 아카이브의 압축은 gzip이나 bzip2등을 이용한다.

아카이브를 만드는 목적

파일의 백업이나 배포에 편리하게 이용된다.

확장자

아카이브의 확장자는 .tar 이다. 일반적으로 tar로 묶인 아카이브를 gzip으로 압축하여 확장자가 .tar.gz 압축 아카이브를 많이 이용한다.

유래

원래, tar 아카이브는 마그네틱 테이프에 파일을 저장하기 위해 만들어졌다. 그래서 tar는 tape archiver에서 유래한다.

2 미리 알아두면 좋을 것들

2.1 옵션주는 방법

긴 형식 옵션

tar --create --verbose --file=afiles.tar apple angst aspic

짭은 형식 옵션

tar -c -v -f afiles.tar apple angst aspic

또는 붙여서

tar -cvf afiles.tar apple angst aspic

tar 는 반드시 옵션이 필요 해서 옵션에 - 를 붙이지 않아도 된다.

tar cvf afiles.tar apple angst aspic

2.2 왜 -f와 -v옵션이 많이 쓰이는가?

-f --file=

-f 는 아카이브 파일의 이름을 지정해 주는 옵션이다. -f 가 없으면 아카이브의 이름이 없는 샘이다. 따라서, -f 로 아카이브의 이름을 꼭 명시해야 한다. tar는 아카이브 이름이 없으면 디폴트 이름을 취한다. 원래 tar의 목적대로 (디폴트로 엑션) 테입드라이브로 아카이브를 저장하려 들지도 모른다. 요즘은, 컴퓨터에 마그네틱 테입 드라이브가 없으므로 에러가 발생할 것이다.

-v --verbose

-v 옵션이 있으면 아카이브에 추가되거나 풀리고 있는 파일의 이름을 화면에 보여준다. 진행사항을 알 수 있기 때문에 사용하는게 좋다.

"ls -l" 과 같은 형식으로 파일을 보려면 v를 두번 써준다.

tar -cvvf afiles.tar 파일들(디렉토리들)

2.3 가장 많이 사용되는 작업

--create -c 새로운 아카이브를 생성한다.

--list -t 아카이브의 내용(묶인 파일이름)을 보여준다.

--extract -x 아카이브에 묶인 파일이나 디렉토리를 풀어준다.

·  아카이브의 파일 리스트 보기

3 명령어 활용예

3.1 아카이브 풀기

 tar -xvf afiles.tar

afiles.tar 라는 아카이브 파일에 묶인 파일과 디렉토리를 현재 디렉토리에 풀어준다.

3.2 아카이브 만들기

 tar -cvf afiles.tar 묶을파일과디렉토리들

afiles.tar 라는 이름으로 파일과 디렉토리를 묶어준다.

3.3 아카이브 내용보기

 tar -tvf afiles.tar 묶을파일과디렉토리들

afiles.tar 라는 이름으로 묶인 파일과 디렉토리를 보여 준다.

3.4 퍼미션을 유지하며 아카이브 만들기

 tar -cvfp archive.tar 묶을파일과디렉토리들

afiles.tar 라는 이름으로 퍼미션을 유지하며 파일과 디렉토리를 묶어준다.

3.5 tar+gzip 압축하기

tar -czvf afiles.tar.gz 묶을파일과디렉토리들

afiles.tar.gz 라는 이름으로 파일과 디렉토리를 묶어준다.

tar -czvfp afiles.tar.gz 묶을파일과디렉토리들

afiles.tar.gz 라는 이름으로 퍼미션을 유지하며 파일과 디렉토리를 묶어준다.

3.6 tar+bzip2 압축하기

tar -cjvf afiles.tar.bz 묶을파일과디렉토리들

afiles.tar.bz 라는 이름으로 파일과 디렉토리를 묶어준다.

tar -cvjfp afiles.tar.gz 묶을파일과디렉토리들

afiles.tar.gz 라는 이름으로 퍼미션을 유지하며 파일과 디렉토리를 묶어준다.

3.7 gzip으로 압축된 tar 풀기

 tar -xvzf afiles.tar.gz

afiles.tar.gz 라는 tar 로 묶인뒤 gzip 으로 압축된 파일을 먼저 압축을 푼뒤에 묶인 파일까지 풀어준다.

3.8 bzip2로 압축된 tar 풀기

 tar -xvjf afiles.tar.bz

afiles.tar.bz 라는 tar 로 묶인뒤 bzip2로 압축된 파일을 먼저 압축을 푼뒤에 묶인 파일까지 풀어준다.

3.9 허가권(Permission) 유지하며 풀기

 tar -xpf afiles.tar

파일을 묶을 당시의 각 파일의 허가권을 유지하며 풀어준다.

4 백업에 활용하기

4.1 아카이브에 새 파일 추가하기

 tar --append --file=collection.tar rock

또는

 tar -rvf collection.tar rock

collection.tar 라는 기존 아카이브 파일에 rock라는 파일을 추가한다. 옵션은 --append (-r) 이다.

똑같은 이름의 파일이 아카이브에 추가되면 기존의 오래된 파일은 지워지지 않고 아카이브에 남아 있는다.

따라서 같은 이름의 파일을 여러번 추가하면 (append) 추가된 시간별로 여러 버전의 파일이 존재한다. 그러나, 아카이브를 풀때는 가장 최신 파일이 풀린다.

4.2 아카이브에 파일 업데이트하기

 tar -uvf collection.tar blues folk rock classical

collection.tar 라는 기존 아카이브에 blues folk rock classical등 4 개의 파일을 업데이트 한다. 업데이트는 날자와 시간을 기준으로 실행한다. 아카이브에 있는 파일과 업데이트할 파일이 수정된 날자가 같으면 아카이브에 추가하지 않는다.

만약 아카이브에 있는 파일보다 최근에 수정이 되었으면 아카아브에 추가한다. 기존의 오래된 파일은 지워지지 않고 남아 있는다.

따라서, 업데이트를 여러번 하면, 같은 이름의 파일이 수정된 시간별로 여러가지 버전이 존재할 수 있다. 그러나, 아카이브를 풀때는 가장 최신 파일이 풀린다.

아카이브를 풀때 옵션은 --update(-r)이다.

4.3 아카이브에 파일 삭제하기

 tar --delete --file=collection.tar blues

collection.tar 라는 기존 아카이브에서 blues라는 파일을 삭제한다. 주의할 것은 모든 blues파일을 삭제한다는 것이다. 모든 디렉토리내의 blues파일과 여러 버전의 blues가 모두 삭제된다. 다른 옵션과 달리 삭제 옵션인 --delete는 짧은 형식의 옵션이 없다.

3.4 아카이브에서 특정 디렉토리 또는 파일만 풀기

명시된 파일 풀기: collection.tar 라는 아카이브에서 blues라는 파일만 현재 디렉토리에 푼다.

tar --extract --file=collection.tar blues

디렉토리까지 명시: music.tar 에서 practice/folk와 practice/jazz파일만 푼다.

tar -xvf music.tar practice/folk practice/jazz

 

*** 실제 활용 예 ***

tar xzvfp /backup/20050107/20050107.tar.gz /home/ home/yc1500

tar [옵션] [아카이브파일명] [압축을풀어놓을 대상디렉터리] [압축파일내의 특정파일(폴더)]

p 옵션: 허가권 유지 옵션

 

4.5 옛버전 파일 풀기

 tar --extract --file archive.tar --occurrence=2 myfile 

archive.tar 라는 아카이브에서 2번째 버전의 myfile을 푼다.

 tar --extract --file archive.tar --occurrence 

archive.tar 라는 아카이브에서 첫번째 버전의 모든 파일을 푼다.

4.6 아카이브 파일과 실제 파일 비교하기

 tar -d -f archive.tar *.c

archive.tar라는 아카이브에 모든 c파일들과 현재 디렉토리의 c파일을 비교한다. 수정 날자와 내용을 비교하고 내용이나 날자가 다르면 화면에 보여준다.

5 기타

5.1 모든 하위 디렉토리의 특정 소스만 묶고 싶을 때는?

쉘 컴멘드와 조합하여 특정 소스를 찾아서 아카이브에 추가 할 수 있다.

먼저 아카이브를 하나 만든다.

 tar -cvf test.tar prog1.c

for 문과 find 명령을 이용해서 하위 디렉토리의 묶고 싶은 파일을 찾고, tar의 -r 옵션으로 test.tar에 하나씩 추가한다.

 for i in $(find . -name '*.c'); do tar -rvf test.tar $i; done

find 의 다양한 검색능력을 100%활용할 수 있다. 


출처 : http://rjh1147.tistory.com/6

TAG •
?

List of Articles
번호 제목 글쓴이 날짜 조회 수
104 Linux 웹서비스를 위한 퍼미션 문제 JAESOO 2014.12.17 758
103 Linux/NT XE 설치 시 안전한 폴더권한 설정하기 (chown 사용) JAESOO 2014.12.17 299
102 Linux CentOS 방화벽 설정 - iptables JAESOO 2014.12.16 446
101 리눅스 버전 확인(centos, redhat) 하는 명령어 JAESOO 2014.11.18 844
100 리눅스 자동 백업 스크립트 JAESOO 2014.11.18 1674
» TAR 명령어의 모든것 JAESOO 2014.11.18 773
98 gzip 과 gunzip 명령어 JAESOO 2014.11.18 6076
97 yum 이란? JAESOO 2014.11.18 397
96 리눅스 스케줄 설정 crontab JAESOO 2014.11.18 980
95 yum 사용법 정리 JAESOO 2014.11.18 340
94 CentOS에서 Iptables 방화벽 포트 OPEN하기 JAESOO 2014.10.20 1150
93 Linux에서 Cron을 이용한 스케쥴러 관리 JAESOO 2014.10.20 926
92 리눅스 스케줄러 crontab 이용하기 JAESOO 2014.10.20 1172
91 [공개SW 활용 성공사례 152] KTDS – JBoss·PostgreSQL 등으로 공개SW 전환 택한 KTDS JAESOO 2014.10.19 9971
90 리눅스 호스트명 변경 JAESOO 2014.10.10 1193
89 wpa_supplicant를 사용한 무선랜 사용 ( WPAPSK 무선 보안 방식 / AES 암호화 ) JAESOO 2014.08.22 1867
88 CentOS 노트북 무선랜 설정 JAESOO 2014.08.22 4180
87 CentOS 설치 후 설정 (package 추가, network 변경 등, vmware 설정 포함) JAESOO 2014.08.22 4994
86 ipTIME N100UM 무선USB 어댑터 linux 설치 JAESOO 2014.08.22 3069
85 Linux 무선랜 포팅 방법 JAESOO 2014.08.22 1984
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10

PageViews   Today : 1,236   Yesterday : 1,350   Total : 19,963,329  /  Counter Status   Today : 447   Yesterday : 491   Total : 1,470,936
Site Info   Member : 238  /  Total documents : 1,223   New documents : 0  /  Total comments : 24

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소