--- title: zip — 압축 파일 만들기 date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: 여러 파일을 zip으로 묶는 명령어. 윈도우와 주고받을 때 특히 유용합니다. tags: 프로그램, 파일 및 디스크 관리, zip --- **💬 "zip 명령어"** zip은 윈도우에서도 바로 열리는 압축 형식입니다. 리눅스–윈도우 간 파일 전달에 특히 편합니다. 디렉터리를 담을 때는 `-r`을 반드시 붙입니다. - **개념**: 파일과 디렉터리를 zip 형식으로 묶습니다. - **왼쪽 인자**: 만들 압축 파일 이름입니다. - **오른쪽 인자**: 압축할 파일/디렉터리 목록입니다. - **진행 표시**: 기본으로 파일마다 압축률을 출력합니다. ## 자주 쓰는 옵션 | 옵션 | 설명 | | --- | --- | | -r | 디렉터리를 재귀적으로 담습니다 — 필수 | | -q | 진행 출력 없이 조용히 실행 | | -x '*.log' | 특정 패턴을 제외합니다 | | -e | 비밀번호를 걸어 암호화합니다 | | -9 | 최대 압축률로 압축합니다 | ## 필수 명령어 조합 3가지 - `zip -r site-20261018.zip /var/www/html` — 웹 루트를 zip으로 묶기 - `zip -rq release.zip . -x '*.log' -x 'cache/*'` — 로그·캐시 제외하고 조용히 묶기 - `zip -r9 arch.zip src/ docs/ README.md` — 최대 압축으로 산출물 묶기 **💬 "자동화 스크립트에 넣는다면 어떻게 쓸까?"** 실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다. ### 1단계 · 묶을 대상 정리 대상 디렉터리로 이동하거나 절대 경로로 지정합니다. ``` cd /var/www && ls html ``` ### 2단계 · 압축 재귀 옵션으로 묶고 제외 패턴을 지정합니다. ``` zip -rq /tmp/site-20261018.zip html -x '*.log' ``` ### 3단계 · 검증 목록과 무결성을 확인합니다. ``` unzip -l /tmp/site-20261018.zip | tail -2 ``` ## 실무에서는 이렇게 씁니다 ### 1. 윈도우 담당자에게 전달 **상황** — 고객사가 리눅스 압축(tgz)을 풀 수 없어 zip이 필요합니다. ``` zip -r delivery-20261018.zip report/ data.xlsx ``` **결과** — 윈도우에서 바로 열 수 있는 zip이 생성됩니다. **포인트** — 한글 파일명이 있으면 인코딩 문제가 생길 수 있어 -UN=UTF8 대신 기본값 사용 여부를 확인합니다. ### 2. 부분 백업 **상황** — 업로드 폴더만 zip으로 백업하고 싶습니다. ``` zip -rq /backup/uploads-20261018.zip /var/www/html/uploads ``` **결과** — 업로드 파일만 담긴 압축 파일이 만들어집니다. **포인트** — 대용량은 tar+gzip이 더 빠른 경우가 많습니다. 호환성이 필요할 때만 zip을 씁니다. ## 주의할 점 - -r을 빼면 디렉터리가 비어 있는 채로 담깁니다(가장 흔한 실수). - zip은 권한/소유자 정보를 완전히 보존하지 않습니다. 서버 복구용은 tar를 씁니다. - 암호화(-e)는 취약할 수 있어 민감 정보는 별도 암호화 도구를 씁니다. ## 실제 실행 화면 압축 파일 목록과 크기를 확인한 결과입니다. ![zip 명령어 실행 결과: 압축 파일 목록과 크기](https://games.cursorai.co.kr/assets/zip-demo.png) 실제 운영 중인 서버 --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/filesystem/zip.html