zip & tar
리눅스에서 많이 사용되는 압축 방법
- tar + xz
- zip
- tar + gz
- tar + bz2
압축률
zip < gz < bz2 < xz
압축률이 높을수록, 속도는 느리다
실습
구성
아래와 같이 환경 구성
work1, work2에 각각 1MB 파일을 생성한다
mkdir work1
cd work1
for ((i=0;i<1024;*1024/2;i++)) do echo A >> a.txt; done
du -sh a.txt
mkdir work2
cd work2
for ((i=0;i<1024*1024/2;i++)) do echo A >> b.txt; done
du -sh b.txt
'A'와 줄바꿈문자 '\n' 까지 더해서 2byte * 1024 * 1024 / 2번 반복해서 해당 파일들은 각각 1mb 가 된다.
압축 - zip
work1 디렉토리로 이동한 뒤 a.txt를 압축해보자.
zip all1.zip a.txt
원본 파일이 남아있는 것을 확인할 수 있다.
all1.zip을 지우고 a.txt와 work2를 같이 압축해보자.
zip all2.zip ./*
압축 파일 내 work2 디렉토리가 비어있는 파일인 것을 확인할 수 있다
-r 옵션을 줘야 하부 디렉토리가 정상적으로 같이 압축된다
all2.zip을 지우고
-r 옵션을 주고 a.txt와 work2를 같이 압축해보자.
zip -r all3.zip ./*
압축해제 - unzip
unzip [압축파일명] -d [압축풀 경로]
[압축풀 경로]에 해당 경로가 없으면 생성하고 압축해제한다.
unzip all3.zip -d ./newDirect
압축 - gzip, xz
gzip과 xz는 리눅스의 단일 파일 압축 방식이다.
원본 파일이 압축 파일로 변경된다 (원본 파일이 사라진다)
압축 성능 xz > gzip
gzip a.txt
xz b.txt
압축해제 - gunzip, xz -d
gunzip a.txt.gz
xz -d b.txt.xz
파일아카이브 유틸리티 - tar
파일을 하나로 합칠 수 있다.
파일을 하나로 합치는 것뿐 압축을 하는 것은 아니다.
원본이 남아있다.
tar -cvf ab.tar a.txt b.txt
tar -cvf [파일명.tar] [파일1] [파일2] ...
- -c : 하나로 모아서 새파일 생성 (create)
- -f : 파일 이름을 지정 (file)
- -v : 진행 상황을 보여줌 (verbose)
- 원본이 남음
tar -xvf ab.tar -C ./ab/
tar -xvf [파일명.tar] -C [압축 풀 디렉토리 경로]
- -x : tar 해제 (extract)
- -C : 경로 지정 (change directory)
- tar는 자동으로 디렉토리를 만들어주는 기능이 없어서 해당 디렉토리를 만들어야 함
- 원본이 남음
핵심 - tar + xz
tar -Jcvf [파일명.tar.xz] [파일1] [파일2] ...
- -J : XZ 압축 방식을 사용하도록 지정하는 옵션
tar -Jcvf ab.tar.xz a.txt b.txt
tar -Jxvf [파일명.tar.xz] -C [디렉토리]
tar -Jxcf ab.tar.xz -C ./ab
'Linux > tips' 카테고리의 다른 글
아카이브 변경하기 (0) | 2024.12.11 |
---|---|
Vim 설치, 단축키, vimrc (0) | 2024.12.10 |
bash shell script - 명령어 정리 (0) | 2024.12.10 |