Linux 압축파일
압축
# 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