Intro

리눅스에서 압축파일의 압축을 푸는 방법, 파일들을 압축해 하나의 압축파일로 만드는 방법을 공부해보도록 하겠습니다.


zip, unzip

다양한 방법이 있겠지만, 가장 손쉽게 사용할 수 있고, 직관적이라고 생각하는 zip, unzip 패키지를 사용해보도록 하겠습니다.

패키지 설명 옵션 옵션 설명
zip 파일 및 폴더를 압축합니다. -r 하위 디렉터리를 포함
    -x 특정 파일 제외
    -n 압축률과 압축속도
1이 가장 빠르나, 압축률이 낮음
    -e 압축파일에 암호 설정
unizp 압축파일의 압축을 해제합니다. -d 특정 폴더에 압축 풀기
    -o 파일을 항상 덮어쓰기
    -n 파일을 덮어쓰지 않음

Installation

zip 과 unzip 패키지는 별도 설치가 필요합니다.

1
2
3
4
5
6
7
// 우분투
$ sudo apt-get install zip
$ sudo apt-get install unzip

// CentOS
$ sudo yum install zip
$ sudo yum install unzip

사용법

zip 사용법

1
2
3
4
5
// 하나의 파일을 압축하는 경우

$ zip 압축파일명.확장자 압축할파일
$ zip exam_file.zip /data/example/exam_files/001.csv

1
2
3
4
5
// 다수개의 파일을 압축하는 경우

$ zip 압축파일명.확장자 압축할파일1 압축할파일2 ... 압축할파일n
$ zip exam_files.zip ./001.csv ./002.csv ./003.csv

1
2
3
4
5
6
7
// 폴더와 그 하위 폴더, 하위 파일을 압축할 경우

$ zip -r 압축파일명.확장자 압축할폴더
$ zip -r exam_files.zip /data/example/exam_files
$ zip -r this_folder.zip ./*
$ zip -r several.zip ./exam_files ./data_list.csv

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 기타

// 이미 존재하는 압축파일에 새로운 파일 추가
$ zip 기존압축파일 새로추가할파일
$ zip existed.zip ./example/add.csv


// 특정 파일 제외
$ zip 압축파일명.확장자 압축할파일이나폴더 -x 제외규칙
$ zip tiles.zip ./* -x *.jpg*

// 비밀번호 설정
$ zip 압축파일명.확장자 압축할파일 -e
$ 이후 비밀번호 설정
$ zip secret.zip ./* -x *.jpg* -e

unzip 사용법

1
2
3
4
// 압축 풀기 (현재 폴더에)

$ unzip 압축파일.확장자
$ unzip example.zip
1
2
3
4
// 압축 풀기 (특정 폴더에)

$ unzip 압축파일.확장자 -d 압축풀경로
$ unzip throws.zip -d ../throws
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 기타

// 파일을 덮어쓰지 않기
$ unzip -n 압축파일.확장자
$ unzip -n example.zip -d ../examples
$ 꼭 unzip 다음에 써야함. 마지막에 쓰면 에러

// 파일을 항상 덮어쓰기
$ unzip -o 압축파일.확장자
$ unzip -o example.zip -d ../examples
$ 꼭 unzip 다음에 써야함. 마지막에 쓰면 에러

// 이 옵션들을 사용하지 않을 경우,
// 중복파일이 있으면 덮어쓸 것인지를 계속 물어봅니다.


Reference

https://onecoin-life.com/58
CentOS zip 설치
https://www.lesstif.com/lpt/linux-zip-unzip-80248839.html
https://m.blog.naver.com/sw4r/221999562678