디렉토리 구조
/home/test/
/home/test/test1/
/home/test/test2/
/home/test/test3/
/home/test/test4/
/home/test/test5/
test2 와 test3 디렉토리를 제외시키기
cd /home/test/
tar cvf ../test.tar --exclude test2 --exclude test3 ./
--exclude 옵션에서 / <- 요게 들어 가면 안된다.
특정디렉토만 묶을때에는
tar cvf ../test.tar --exclude test2 test3 test4
이런식으로 --exclude  를 한번만 써주고 묶을 디렉토리만 지정해주면 된다
또다른 방법
tar cvfX test.tar exclude.lst test
 옵션 X는 exclude.lst에 기록되어있는 파일이나 디렉토리를 제외하라는 뜻
예를 들어 아래와 같은  test 폴더가 있다.
test
 - sub_dir/
 - sub_dir2/
 - sub_dir3/
 - file1
 - file2
여기에서 sub_dir 폴더와 file1은 제외하고 test 폴더전체를 묶고 싶다면
1. exclude.lst 파일을 생성하여 아래와 같이 작성한다.
test/sub_dir
test/file1
2. TAR를 실행한다.
tar cvfX tets.tar exclude.lst test

많은 경우는 아니지만 가끔 디렉토리 전체를 복사 해야하는 경우가 있습니다.
대부분 백업이나 데이터의 이전 같은 경우 인대요.
이런 경우에 디렉토리 전체를 복사하는 것은 어렵지 않습니다. cp 명령에 간단한 옵션만 주면 복사를 해주기 때문입니다.
그런대 특정 디렉토리를 제외하고 복사를 해야할 경우 복사할 디렉토리가 적다면 한개씩 복사하는 방법으로 진행을 해도 되지만,
디렉토리가 수십개 혹은 수백개일 경우에는 난감해집니다.
이럴 경우에 유용한 팁을 하나 알려드릴려고 합니다.
tar를 이용해서 복사를 하는 방법 입니다.
tar cpfv - 복사할 디렉토리 --exclude=제외할 디렉토리 | tar xpfv - -C 대상디렉토리
이해가 않가실 부분이 -C옵션과 - 옵션인대요. 해당옵션을 설명드리겠습니다.
-C : c 혹은 r 선택사항에서, 타르파일 안에 묶기 전에 해당 디렉토리로 이동을 합니다.
-f : 다음의 매개변수를 타르 파일 이름으로 지정.  지정이 되지 않은 경우 /dev/rmt8을 기본적으로 이용. - 문자가 지정된 경우 표준 입출력을 이용 합니다.
--exclude : 선택한 항목을 제외 합니다.
cpv옵션이나 xpv옵션같은 경우에는 tar명령을 사용함에 있어서 자주 사용하게 되는 옵션이라 따로 설명 하지 않겠습니다.
이런방법으로 할경우 지정할 디렉토리를 제외한 나머지는 복사하지 않고 나머지에 대해서는 복사를 진행할 수 있습니다.

+ Recent posts