리눅스 명령줄 환경에서 파일을 압축(zip)하는 방법은 이미 다뤘습니다. 이번에는 반대로 압축을 해제(unzip)하는 방법을 알아보겠습니다. 이 글에서는 unzip 명령어의 설치부터 다양한 활용 옵션까지 하나씩 정리해 드립니다.
ZIP 압축이란?
ZIP은 하나 이상의 파일이나 디렉터리를 .zip 확장자를 가진 단일 압축 파일로 묶는 것을 의미합니다. 압축 방법에 대해서는 별도의 글에서 자세히 다루었으므로, 여기서는 압축 해제에 집중하겠습니다.
unzip 명령어 설치하기
unzip은 시스템에 기본적으로 설치되어 있지 않을 수 있습니다. 설치되어 있지 않다면 배포판에 맞는 패키지 관리자로 간단히 설치할 수 있습니다.
Debian/Ubuntu 계열
sudo apt install unzip
Red Hat/CentOS/Fedora 계열
sudo yum install unzip
unzip으로 파일 압축 해제하기
기본 사용법
unzip은 사용법이 매우 간단합니다. .zip 파일의 경로만 지정해 주면 자동으로 압축을 풀어줍니다.
unzip /path/to/file.zip
정말 간단하죠!
압축 해제 경로 지정하기
기본적으로 unzip은 현재 작업 디렉터리에 파일을 추출합니다. -d 옵션을 사용하면 원하는 출력 디렉터리를 직접 지정할 수 있습니다.
unzip /path/to/file.zip -d /path/to/output/directory
비밀번호가 설정된 ZIP 파일
비밀번호가 걸린 .zip 파일을 해제하려면 -P 옵션을 사용합니다.
unzip -P thePassword /path/to/file.zip
다만 비밀번호를 명령줄에 직접 입력하는 것은 권장하지 않습니다. 입력한 비밀번호가 셸 명령 기록(history)에 저장될 수 있기 때문입니다. -P 옵션 없이 실행하면 비밀번호가 필요한 경우 unzip이 안전하게 입력하도록 프롬프트를 띄워주므로, 이 방식을 사용하는 것이 더 안전합니다.
파일 덮어쓰기 제어하기
추출하려는 파일이 대상 경로에 이미 존재하면, unzip은 덮어쓸지 여부를 묻습니다. 매번 확인 없이 자동으로 처리하고 싶다면 아래 옵션을 사용하세요.
기존 파일을 무조건 덮어쓰려면 -o 옵션을 사용합니다.
unzip -o /path/to/file.zip
반대로 기존 파일을 절대 덮어쓰지 않으려면 -n 옵션을 사용합니다.
unzip -n /path/to/file.zip
ZIP 파일 내용 미리 보기
실제로 압축을 풀지 않고도 ZIP 파일 안에 어떤 파일이 들어 있는지 목록을 확인할 수 있습니다.
unzip -l /path/to/file.zip
특정 파일 제외하고 추출하기
압축을 풀 때 특정 파일(또는 여러 파일)을 제외하고 싶다면 -x 옵션을 사용합니다.
unzip /path/to/file.zip -x excludeFile1 excludeFile2
제외할 파일명은 공백으로 구분하여 한 개 이상 지정할 수 있습니다.
출력 메시지 숨기기
unzip을 실행하면 성공적으로 압축 해제된 파일들이 하나씩 나열됩니다. 스크립트 등에서 출력을 최소화하고 싶다면 -q(quiet) 옵션을 사용하세요.
unzip -q /path/to/file.zip
마치며
지금까지 리눅스에서 unzip 명령어를 활용해 ZIP 파일을 다루는 다양한 방법을 살펴보았습니다. 모든 옵션과 세부 기능이 궁금하다면 아래 명령으로 전체 사용자 매뉴얼을 확인할 수 있습니다.
man unzip