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 / 명령어 / journalctl - systemd 시스템·서비스 로그 조회

Linux / 명령어 / journalctl - systemd 시스템·서비스 로그 조회

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

Linux / 명령어 / ls - 파일과 디렉터리 목록 확인

Linux / 명령어 / ls - 파일과 디렉터리 목록 확인

Linux ls 명령어로 파일과 디렉터리 목록, 숨김 파일, 권한과 소유자, 크기 및 수정 시간을 확인하는 방법을 설명합니다. 자주 쓰는 옵션 조합과 정렬 방법, 스크립트에서 ls 출력을 안전하게 다루는 기준도 정리합니다.

Linux / 명령어 / env - 환경 변수 설정과 명령 실행

Linux / 명령어 / env - 환경 변수 설정과 명령 실행

Linux env 명령어로 환경 변수를 추가·제거하거나 깨끗한 환경에서 프로그램을 실행하는 방법을 설명합니다. env -i·-u·-C, shebang 활용과 printenv와의 차이를 다룹니다.

Linux / 명령어 / help - 셸 내장 명령어 도움말 확인

Linux / 명령어 / help - 셸 내장 명령어 도움말 확인

Bash help 명령어로 셸 내장 명령과 문법의 도움말을 확인하는 방법을 설명합니다. 출력 형식, 패턴 검색, type·man·--help와의 차이 및 스크립트 활용법을 정리합니다.

Linux / 명령어 / ip - 인터페이스·주소·라우팅 상태와 설정

Linux / 명령어 / ip - 인터페이스·주소·라우팅 상태와 설정

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

Linux / 명령어 / id - 사용자 ID와 그룹 정보 확인

Linux / 명령어 / id - 사용자 ID와 그룹 정보 확인

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

Linux / 명령어 / dirname - 경로에서 디렉터리 부분 추출

Linux / 명령어 / dirname - 경로에서 디렉터리 부분 추출

Linux dirname 명령어로 경로의 디렉터리 부분을 추출하는 방법을 설명합니다. 입력 형태별 결과와 basename, realpath의 차이 및 셸 스크립트 활용법을 정리합니다.

Linux / 명령어 / head - 파일 앞부분의 줄과 바이트 출력

Linux / 명령어 / head - 파일 앞부분의 줄과 바이트 출력

Linux head 명령어로 파일의 처음 몇 줄이나 바이트를 출력하는 방법을 설명합니다. 여러 파일, 음수 개수, 파이프 활용과 바이너리 데이터 주의점도 정리합니다.

Linux / 명령어 / which - PATH에서 실행 파일 경로 찾기

Linux / 명령어 / which - PATH에서 실행 파일 경로 찾기

Linux which 명령어로 PATH에서 실행 파일 경로를 찾는 방법을 설명합니다. type과 command -v의 차이, 별칭·함수 확인과 스크립트 이식성도 정리합니다.

웹 서버용 리눅스 추천: Ubuntu, Debian, Rocky Linux 선택 기준

웹 서버용 리눅스 추천: Ubuntu, Debian, Rocky Linux 선택 기준

웹 서버용 Linux 배포판을 지원 기간, 패키지 생태계, 보안 정책과 운영 환경 기준으로 비교합니다. Ubuntu Server, Debian, Rocky Linux·AlmaLinux와 Amazon Linux 중 상황에 맞는 선택법을 정리합니다.