unzip — 압축 풀기와 확인
Linux / 파일 및 디스크 관리 / unzip.html
💬 "unzip 명령어"
unzip은 zip 파일을 풉니다. -l로 먼저 목록을 보는 습관이 사고를 막습니다.
풀 위치는 -d로 지정합니다.
- 개념: zip 아카이브의 내용을 확인(-l)하거나 풉니다.
- 왼쪽 인자: 대상 zip 파일입니다.
- -l 출력: 파일명·크기·압축률 목록과 전체 요약을 보여줍니다.
- -d: 풀 대상 디렉터리를 지정합니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
-l | 내용 목록만 봅니다(풀지 않음) |
-d <dir> | 지정한 디렉터리에 풉니다 |
-o | 확인 없이 덮어씁니다 |
-q | 조용히 실행 |
-x <패턴> | 특정 파일을 제외하고 풉니다 |
필수 명령어 조합 3가지
unzip -l release.zip | head -20— 풀기 전에 내용과 경로 확인unzip -q release.zip -d /opt/app/releases/20261018— 지정 경로에 조용히 풀기unzip -o upload.zip -d /tmp/x -x '*.exe'— 덮어쓰며 특정 파일 제외
💬 "명령어 옵션을 조합한 실전 예시 하나 부탁해"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 목록 확인
경로가 포함됐는지, 최상위 폴더 구조가 어떤지 봅니다.
unzip -l /tmp/release.zip | head
2단계 · 임시 경로에 풀기
운영 경로에 바로 풀지 않습니다.
unzip -q /tmp/release.zip -d /tmp/verify
3단계 · 반영
검증 후 대상 경로로 이동하거나 링크를 교체합니다.
unzip -o -q /tmp/release.zip -d /opt/app/releases/20261018
실무에서는 이렇게 씁니다
1. 한글 파일명 깨짐
상황 — 윈도우에서 만든 zip의 한글 이름이 깨져 보입니다.
unzip -l winfile.zip
결과 — 목록이 깨져 보이면 인코딩이 CP949일 가능성이 큽니다.
포인트 — 필요 시 unzip -O cp949(또는 해당 버전 옵션)으로 풉니다. 먼저 목록으로 확인합니다.
2. 안전한 배포
상황 — 릴리스 zip을 운영 경로에 반영해야 합니다.
unzip -q /tmp/release.zip -d /opt/app/releases/20261018 && ln -sfn /opt/app/releases/20261018 /opt/app/current
결과 — 새 릴리스가 별도 경로에 풀린 뒤 포인터만 교체되어 순단이 없습니다.
포인트 — 임시 경로 검증 → 별도 릴리스 디렉터리 → 링크 교체 순서를 지킵니다.
주의할 점
- zip 슬립(경로 탈출) 취약점이 있어 신뢰할 수 없는 zip은 -l로 경로를 확인합니다.
- 운영 디렉터리에 바로 풀면 기존 파일이 덮여 롤백이 어려워집니다.
- 권한 정보가 유지되지 않아 풀은 뒤 소유자/권한을 다시 맞춰야 합니다.
실제 실행 화면
압축 파일 내용을 풀지 않고 확인한 결과입니다.

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