zip — 압축 파일 만들기
Linux / 파일 및 디스크 관리 / zip.html
💬 "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)는 취약할 수 있어 민감 정보는 별도 암호화 도구를 씁니다.
실제 실행 화면
압축 파일 목록과 크기를 확인한 결과입니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.