본문 바로가기
서버

tar exclude 옵션 사용법

by ITKN 2026. 3. 18.
반응형

리눅스나 유닉스 환경에서 파일을 압축할 때 특정 디렉토리나 파일을 제외하고 싶다면 --exclude 옵션이 필수입니다. 하지만 문법을 정확히 지키지 않으면 무시되고 전부 압축되는 경우가 많으니 주의가 필요해요.

기본적인 사용법과 실수하기 쉬운 포인트들을 정리해 드릴게요.


1. 기본 사용법

가장 기본적인 형태는 --exclude='패턴'을 사용하는 것입니다.

Bash
 
tar -cvfz [파일명.tar.gz] [압축할_대상] --exclude='제외할_패턴'
  • -c: 압축 생성 (create)
  • -v: 과정 출력 (verbose)
  • -f: 파일 이름 지정 (file)
  • -z: gzip 압축 사용

예시: 특정 폴더 제외하기

my_project 폴더를 압축하되, 용량이 큰 node_modules 폴더는 빼고 싶을 때:

Bash
 
tar -cvfz project.tar.gz ./my_project --exclude='node_modules'

2. 여러 개를 제외하고 싶을 때

두 가지 방법이 있습니다.

  • 옵션 반복 사용:
  • Bash
     
    tar -cvfz backup.tar.gz . --exclude='log' --exclude='temp'
    
  • 제외 리스트 파일 이용: 제외할 목록이 너무 많다면 별도의 텍스트 파일(예: exclude_list.txt)에 작성한 뒤 -X 옵션을 씁니다.
  • Bash
     
    tar -cvfz backup.tar.gz . -X exclude_list.txt
    

3. ⚠️ 주의해야 할 핵심 포인트 (꿀팁)

  1. 옵션의 위치: 일반적으로 tar 명령어 맨 뒤에 --exclude를 붙이는 것이 가장 안전합니다. 소스 경로 뒤에 위치시켜야 정확히 작동하는 경우가 많습니다.
  2. 경로 끝에 슬래시(/) 금지:
  3. --exclude='folder/'라고 쓰면 인식을 못 할 수 있습니다. 폴더명만 깔끔하게 --exclude='folder'라고 적어주세요.
  4. 와일드카드 활용:
  5. 특정 확장자만 빼고 싶다면 --exclude='*.log'와 같이 사용할 수 있습니다.

4. 요약표

상황 명령어 예시
단일 폴더 제외 --exclude='folder_name'
특정 파일 제외 --exclude='config.php'
특정 확장자 제외 --exclude='*.mp4'
여러 개 제외 --exclude='dir1' --exclude='dir2'

실제로 압축을 풀지 않고도 목록만 미리 확인해서 제외가 잘 되었는지 보려면 -tf 옵션을 사용해 보세요.

tar -tf project.tar.gz

 

여러개의 exclude 폴더와 파일 패턴으로 tar 실행 예시 .

tar cvfz of_abc_api.tar.gz --exclude='abc_api/.venv' --exclude='abc_api/venv' --exclude='abc_api/app/venv' --exclude='abc_api/.git' --exclude='*.pyc' abc_api/