unzip — 압축 풀기와 확인

Linux / 파일 및 디스크 관리 / unzip.html

파일 및 디스크 관리원문등록 2026-10-18

💬 "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로 경로를 확인합니다.
  • 운영 디렉터리에 바로 풀면 기존 파일이 덮여 롤백이 어려워집니다.
  • 권한 정보가 유지되지 않아 풀은 뒤 소유자/권한을 다시 맞춰야 합니다.

실제 실행 화면

압축 파일 내용을 풀지 않고 확인한 결과입니다.

unzip 명령어 실행 결과: 압축 파일 목록

실제 운영 중인 서버

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