| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- 사용자관리
- linuxcommand
- php
- 쉘스크립트
- 파일시스템
- 유닉스명령어
- 유닉스
- sysadmin
- linux
- JavaScript
- terminal
- bash
- coreutils
- 리눅스
- 터미널
- tcsh
- UnixCommand
- Solaris
- 시스템관리
- PackageManagement
- 자바스크립트
- js
- 리눅스명령어
- UNIX
- Unix명령어
- environment
- cups
- shell
- 정규표현식
- 명령어
Archives
- Today
- Total
ioerror
zip 사용법 및 옵션 - 파일 및 디렉터리 압축 및 아카이브 생성 본문
반응형

zip - package and compress (archive) files
파일 및 디렉터리 압축 및 아카이브 생성
zip 명령어는 하나 이상의 파일이나 디렉터리를 무손실 데이터 압축 알고리즘(Deflate)을 사용하여 단일 zip 아카이브 파일로 묶고 압축하는 유닉스, 리눅스, 윈도우 지원 대표 CLI 유틸리티이다. 디스크 공간 절약, 네트워크 전송 시간 단축, 다중 파일 포맷 보존, 암호화를 통한 데이터 보호 등 다양한 환경에서 활용된다.
1. 명령어 용도
- 웹 서버 또는 애플리케이션의 특정 디렉터리 및 로그 파일을 백업용으로 압축하는 경우
- 네트워크 전송 시 여러 개의 소스 코드 및 대용량 폴더 구조를 하나로 묶는 경우
- 대용량 파일을 이메일 첨부 용량 제한에 맞춰 여러 개로 분할 압축하는 경우
- 민감한 데이터가 포함된 아카이브에 암호를 설정하여 보안을 강화하는 경우
2. 명령어 서식
Bash
zip [options] zipfile files_to_zip...
3. 명령어 옵션
- 주요 옵션 소개 테이블
| 옵션 | 설명 | 사용가능 OS 및 쉘 |
| -r, --recurse-paths | 지정한 디렉터리와 내부의 모든 하위 디렉터리 및 파일을 재귀적으로 포함하여 압축하다. | |
| -0 ~ -9 | 압축률을 지정하다. (-0: 압축 없음, -1: 가장 빠름, -9: 최고 압축률) | |
| -e, --encrypt | 아카이브 생성 시 비밀번호를 설정하도록 요청하여 암호화하다. | |
| -P password | 비밀번호를 프롬프트 없이 커맨드라인 상에서 직접 지정하다. | |
| -u, --update | 기존 zip 아카이브에서 변경되거나 새롭게 추가된 파일만 업데이트하다. | |
| -f, --freshen | 기존 zip 아카이브 내에 이미 존재하는 파일 중 수정된 파일만 업데이트하다. | |
| -d | 기존 zip 아카이브 내부에서 특정 파일이나 패턴에 일치하는 항목을 삭제하다. | |
| -m, --move | 지정한 파일들을 zip 아카이브에 추가한 후 원본 파일을 삭제하다 (이동). | |
| -x pattern | 압축 대상에서 제외할 파일 또는 디렉터리 패턴을 지정하다. | |
| -i pattern | 지정한 패턴과 일치하는 파일만 선택하여 압축에 포함하다. | |
| -q, --quiet | 실행 시 화면에 출력되는 진단 및 진행 메시지를 표시하지 않다. | |
| -v, --verbose | 진단 정보를 상세히 출력하거나 버전 및 아카이브 구성 정보를 표시하다. | |
| -s size | 지정한 크기(예: 10m, 1g) 단위로 분할 압축(Multi-volume archive)을 수행하다. | |
| -T, --test | 압축 완료 후 생성된 zip 파일의 무결성을 검사하다. | |
| -y, --symlinks | 심볼릭 링크가 가리키는 원본 파일 대신 심볼릭 링크 자체를 보존하여 압축하다. | [Linux/Unix] |
| -FF, --fixfix | 손상된 zip 아카이브를 복구하기 위해 구조를 인덱싱하다. | |
| -@ | 표준 입력(stdin)으로 전달된 파일 목록을 읽어 압축하다. |
- 명령어 옵션 사용시 결과 예시
Bash
# 1. 디렉터리 재귀적 압축 (-r)
zip -r project.zip ./src ./public
# output:
# adding: src/ (stored 0%)
# adding: src/index.js (deflated 65%)
# adding: public/ (stored 0%)
# adding: public/style.css (deflated 70%)
# 2. 암호 설정 및 최고 압축률 지정 (-e, -9)
zip -9 -e secure_data.zip confidential.pdf
# output:
# Enter password:
# Verify password:
# adding: confidential.pdf (deflated 12%)
# 3. 특정 디렉터리/파일 제외 후 압축 (-x)
zip -r build.zip . -x "*.git*" -x "node_modules/*"
# output: .git 및 node_modules 폴더를 제외한 모든 항목이 build.zip으로 압축되다.
# 4. 압축 파일 내 특정 항목 삭제 (-d)
zip -d project.zip "src/temp.tmp"
# output:
# deleting: src/temp.tmp
4. 명령어 특이사항(유의사항)
- 디렉터리 압축 시 -r 옵션 필수: 디렉터리를 지정할 때 -r 옵션을 누락하면 디렉터리 엔트리 자체만 추가되고 내부의 파일 및 하위 폴더는 압축 대상에서 제외된다.
- tar와의 차이점: 유닉스/리눅스의 tar 명령어는 아카이브(하나의 파일로 묶기)와 압축(gzip, bzip2 등) 단계가 명확히 구분되는 반면, zip은 묶기와 압축을 동시에 수행하다.
- 한글 파일명 깨짐 문제: 유닉스/리눅스 환경(UTF-8)에서 압축한 zip 파일을 윈도우(CP949/EUC-KR) 환경에서 해제할 경우 파일명이 깨질 수 있다. 이를 방지하기 위해서는 최신 버전의 zip/unzip 유틸리티를 사용하거나 인코딩 관련 옵션을 지정해야 하다.
- 분할 압축 해제 방식: -s 옵션으로 분할된 zip 아카이브는 zip -s 0 split.zip --out single.zip 명령을 통해 단일 아카이브로 먼저 결합한 후 해제해야 하다.
관련 명령어들
- unzip: zip 형식으로 압축된 아카이브 파일의 내용 목록을 확인하거나 압축을 해제하다.
- tar: 여러 개의 파일과 디렉터리를 하나의 아카이브 파일로 묶거나 해제하다.
- gzip: GNU zip 압축 유틸리티로 단일 파일을 압축하다.
- bzip2: 높은 압축률을 제공하는 단일 파일 압축 유틸리티이다.
- 7z: 7-Zip 아카이브 프로그램을 사용하여 다양한 압축 포맷을 처리하다.
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com
반응형
'OS' 카테고리의 다른 글
| <, >, >> 사용법 및 옵션 - 표준 입출력 리다이렉션(재지정) 연산자 (0) | 2026.08.09 |
|---|---|
| =(equal) 사용법 및 옵션 - 문자열 비교 및 조건식 검증 연산자 (0) | 2026.08.09 |
| zcat 사용법 및 옵션 - 압축 파일의 내용을 해제 없이 표준 출력으로 조회 (0) | 2026.08.09 |
| xterm 사용법 및 옵션 - X 윈도우 시스템 표준 터미널 에뮬레이터 (0) | 2026.08.09 |
| xsetroot 사용법 및 옵션 - X 윈도우 시스템 루트 배경 화면 및 커서 설정 (0) | 2026.08.09 |
Comments