IT/Unix & Linux

tar 특정 디렉토리, 파일 제외하고 압축하기 (예시 포함)

슈다루냥 2020. 12. 23.
728x90

안녕하세요. 슈다 입니다.

 

tar를 이용해 특정 경로의 파일을 묶고 싶은데

사이즈가 크거나 하는 이유로 제외를 해야하는 경우가 종종 생기고는 합니다.

 

이럴 경우 특정 디렉토리나 파일을 제외 후 tar 압축하는 방법을 알아보겠습니다.

 

 

 

tar 특정 디렉토리, 파일 제외 후 압축하기

 

 

tar의  -X (대문자) 옵션을 사용합니다.

-X 는 exclude list 옵션으로 파일에 정의된 경로는 tar로 묶이지 않습니다.

 

 

tar로 묶을 경로 : /home/test1/tmp/* 

제외하고 싶은 파일 :  /home/test1/tmp/a/home/test1/tmp/b

 

우선 제외하고 싶은 디렉토리나 파일 목록을 정의한 list  파일을 생성합니다.

예시에는 exlist 파일명으로 압축에서 제외할 파일 목록을 입력하였습니다.

디렉토리건 파일이건 행을 구분하여 입력하면 됩니다.

 

 

 

 

 

 

해당 경로에 존재하는 파일 입니다.

a, b, c, d, exlist  총 5개의 파일이 있습니다.

 

 

 

 

 

 

-X 옵션을 적용하여 tar 압축 명령을 사용합니다.

# tar  -X /home/test1/tmp/exlist  -cvpf  test.tar  /home/test/tmp/*

# tar  -X  [제외할 파일 리스트파일 경로]   -cvpf  (혹은 -cpf)   [압축될 파일명]  [압축 경로]

 

 

 

리스트에 포함된 파일은 tar 로그에서 excluded 로 표시되며 묶이지 않습니다.

만약 디렉토리라면 하위 디렉토리는 자동적으로 제외되어 묶이지 않습니다.

 

 

 

 

압축파일을 확인합니다.

a와 b 가 압축되지 않은 것을 확인할 수 있습니다.

 

 

 

 

 

 

- TIP -

만약 tar 옵션이 순서가 변경되면 아래와 같이 정상적으로 명령이 실행되지 않을 수 있습니다.

 

 

-cvpf 를  -cvfp 로 순서를 변경하여 명령을 사용하면 압축파일명을 찾을 수 없다는 메세지 발생

 

 

 

위 명령의 결과로 tar 압축파일이 파일명 p 로 압축된 것을 확인할 수 있습니다.

옵션 순서에 따라 압축될 파일명을 읽어들이는 순서가 달라 발생하는 문제입니다.

 

 

 

 

728x90
반응형