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 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / join - 공통 필드로 두 파일 결합

Linux / 명령어 / join - 공통 필드로 두 파일 결합

Linux join 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / dnf - RPM 계열에서 패키지·저장소 관리

Linux / 명령어 / dnf - RPM 계열에서 패키지·저장소 관리

Linux dnf 명령어의 적용 배포판과 기본 작업을 설명합니다. 패키지 조회·설치 예제, 주요 옵션과 시스템 변경 시 주의점을 알아봅니다.

Linux / 명령어 / chgrp - 파일 소유 그룹 변경

Linux / 명령어 / chgrp - 파일 소유 그룹 변경

Linux chgrp 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / nc - TCP·UDP 연결과 포트 점검

Linux / 명령어 / nc - TCP·UDP 연결과 포트 점검

Linux nc 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / cat - 파일 내용 출력과 결합

Linux / 명령어 / cat - 파일 내용 출력과 결합

Linux cat 명령어로 텍스트 파일을 출력하고 여러 파일을 이어 붙이는 방법을 설명합니다. 줄 번호 표시, 빈 줄 압축, 리디렉션과 큰 파일 처리 시 주의점도 정리합니다.

Linux / 명령어 / fsck - 파일 시스템 오류 검사와 복구 시 주의점

Linux / 명령어 / fsck - 파일 시스템 오류 검사와 복구 시 주의점

Linux fsck 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux 강좌 / 파일 권한 읽고 바꾸기와 sudo 사용법

Linux 강좌 / 파일 권한 읽고 바꾸기와 sudo 사용법

리눅스 파일과 디렉터리의 읽기·쓰기·실행 권한을 해석하고 chmod로 실습 파일의 권한을 바꿉니다. sudo의 사용 범위와 권한 오류를 진단하는 순서도 설명합니다.

Linux / 명령어 / unxz - xz 압축 파일 풀기

Linux / 명령어 / unxz - xz 압축 파일 풀기

Linux unxz 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 디스크 관리 / 파티션, 포맷, 마운트

Linux / 디스크 관리 / 파티션, 포맷, 마운트

Linux에서 디스크를 관리할 때 필요한 파티션 생성, 파일 시스템 포맷, 마운트 방법을 정리했습니다.

Linux / 명령어 / unalias - 명령어 별칭 삭제

Linux / 명령어 / unalias - 명령어 별칭 삭제

Bash unalias 명령어로 특정 별칭이나 모든 별칭을 제거하는 방법을 설명합니다. 일시 제거와 영구 제거, 별칭 우회 및 함수·변수 삭제와의 차이를 정리합니다.