1 minute read

압축

# tar
tar -cvf [만들고자하는 tar 파일명].tar [만들대상경로]

# war
jar cvf [만들고자하는 tar 파일명].war [만들대상경로]

명령어

# .tar 압축
tar -cvf example.tar /fscm/ecube/dataplanet

# .war 압축
jar cvf example.war /fscm/ecube/dataplanet

압축해제

tar -xvf [압축해제파일명]

명령어

# .tar 파일 압축해제
tar -xvf ./example.tar.gz

# .tar.gzip 파일 압축해제
tar -zxvf ./example.tar.gz

# 특정경로 압축해제
tar -zxvf example.tar.gz -C /fsecube/dataplanet

tar 옵션
💡 -z: gzip으로 압축된 아카이브 파일을 해제하도록 지시합니다.
💡 -x: 아카이브 해제 모드로 진입하도록 지시합니다.
💡 -v: 처리되는 파일들을 자세히(verbose) 출력하도록 합니다. (선택사항)
💡 -f: 아카이브 파일을 지정합니다. 이후에 아카이브 파일의 이름을 지정해야 합니다.
💡 –strip-components=1: 여기서 1은 지정한 숫자만큼 파일 경로에서 디렉토리를 제거(첫 번째 디렉토리를 제거)

압축 형태

mkdir ./test

# tree
test
.
├── file1.txt
├── file2.txt
├── file3.txt 
└── file4.txt

💡 위 디렉토리와 파일이 존재

압축(폴더를 압축)

# aaa.tar 명칭으로 압축
tar -cvf aaa.tar ./test

💡 test 디렉토리를 압축 완료.
💡 aaa.tar 압축 파일이 생성되었다.

# aaa.tar 압축해제
# (copy_dir 라는 디렉토리안에 해제)
tar -xvf ./aaa.tar -C ./copy_dir

# 폴더 자체가 압축되어있다.
ls -al ./copy_dir
test

💡 test 디렉토리를 압축 완료.
💡 aaa.tar 압축 파일이 생성되었다.

# aaa.tar 압축해제
# (copy_dir 라는 디렉토리안에 해제)
tar -xvf ./aaa.tar -C ./copy_dir

# 해제하니까 디렉토리 자체가 압축되어있었다.
ls -al ./copy_dir
test

💡 디렉토리 자체가 압축되어있음을 알 수 있다.
💡 디렉토리 내용들만 압축하려고 디렉토리/* 시도 했지만 결과는 반드시 디렉토리가 생긴다.

  • # 디렉토리 내부를 압축 한다고 생각하고 진행했지만 결과는 디렉토리채로 압축된다.
    tar -cvf aaa.tar ./test/*  
    
    

💡 디렉토리의 내용만을 압축하고 싶다면 직접 내부 경로에서 압축해야 하는것으로 확인했다.

압축(폴더 내용을 압축)

# 내부로 이동
cd ./test

# aaa.tar 명칭으로 압축
tar -cvf aaa.tar ./*

💡 test 디렉토리 내부의 내용이 압축된다.
💡 aaa.tar 압축 파일이 생성되었다.

# aaa.tar 압축해제
# (copy_dir 라는 디렉토리안에 해제)
tar -xvf ./aaa.tar -C ./copy_dir

# 폴더 내용이 압축되어있었다.
ls -al ./copy_dir
file1.txt
file2.txt
file3.txt
file4.txt

❗ 내부에서 압축하니까 해제시 파일들만 해제된다!

압축 해제시 폴더 건너뛰기

tar -xvf aaa.tar --strip-components=2

–strip-components=1 옵션
💡 tar 명령어의 –strip-components 옵션은 지정한 숫자만큼 파일 경로에서 디렉토리를 제거한다.
💡 이렇게 하면 압축 해제 시 디렉토리가 생성되지 않고 내용만 압축 해제 된다.

Leave a comment