Linux / 명령어 / unzip - ZIP 파일 목록 확인과 안전한 압축 해제
unzip은 ZIP 아카이브에 든 파일 목록을 확인하고 파일을 추출합니다. 풀기 전에 구성원 이름과 목적지를 확인하면 기존 파일 덮어쓰기나 예상 밖의 경로 생성을 줄일 수 있습니다.
unzip 명령어란?
기본적으로 현재 디렉터리에 압축을 풉니다. -d로 대상 디렉터리를 지정하고 -l로 목록을 확인하며 -t로 압축 데이터 오류를 검사할 수 있습니다. -n은 기존 파일을 건너뛰고, -o는 묻지 않고 덮어쓰기 때문에 특히 주의해야 합니다.
기본 문법
unzip [옵션] 아카이브.zip [-d 대상디렉터리]
설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man unzip으로 현재 시스템의 설명을 확인하세요.
사용 예제
압축 파일 목록 확인
추출 전 경로와 파일 수를 확인합니다.
unzip -l project.zip
빈 대상 디렉터리에 추출
다른 파일과 섞이지 않도록 분리해 풉니다.
mkdir -p restore unzip project.zip -d restore/
기존 파일은 건너뛰기
같은 이름의 파일을 유지해야 할 때 -n을 사용합니다.
unzip -n project.zip -d restore/
풀기 전에 경로와 목록 확인하기
unzip -Z -1은 압축을 풀지 않고 ZIP 내부의 파일 이름만 한 줄씩 보여줍니다. 낯선 ZIP은 먼저 목록과 경로를 확인하세요.
unzip -Z -1 bundle.zip
예시 출력:
docs/readme.txt images/logo.png
실제 추출은 unzip bundle.zip -d 대상디렉터리처럼 별도 디렉터리를 지정하는 편이 안전합니다. 압축 파일 안의 이름이 예상치 못한 경로나 기존 파일과 충돌하지 않는지 확인하고, 출처가 불분명한 파일을 추출하자마자 실행하지 마세요. unzip -t는 압축 구조 검사에 도움이 됩니다.
주요 옵션과 형식
| 옵션·형식 | 설명 |
|---|---|
-l |
ZIP 안의 파일 이름과 크기 등을 나열합니다. |
-t |
파일을 추출하지 않고 압축 데이터를 검사합니다. |
-d 디렉터리 |
추출할 목적지 디렉터리를 지정합니다. |
-n |
기존 파일을 덮어쓰지 않습니다. |
-o |
확인 없이 기존 파일을 덮어씁니다. |
사용할 때 주의할 점
출처를 신뢰할 수 없는 ZIP 파일은 관리자 권한으로 풀지 말고 격리된 디렉터리에서 목록을 먼저 보세요. 아카이브 속 경로와 심볼릭 링크, 디스크 여유 공간을 확인하고 -o 자동 덮어쓰기는 피하세요. 압축 파일 검사 -t가 파일 내용의 안전성까지 보증하는 것은 아닙니다.
자주 묻는 질문
기존 파일을 건드리지 않고 ZIP을 풀려면?
별도의 빈 디렉터리를 지정하는 것이 가장 분명합니다. 기존 디렉터리에 풀어야 한다면 -n으로 같은 이름의 파일을 건너뛰세요.
공식 문서
옵션의 정확한 동작과 구현별 차이는 unzip 관련 공식 문서에서 확인할 수 있습니다.









