[Linux] zip / unzip 명령어 사용법 및 압축 해제 총정리

작성자

카테고리:

1) zip, unzip 명령어 개요 및 기본 사용법

리눅스 환경에서 파일을 다루다 보면 백업이나 전송을 위해 압축 파일(.zip)을 생성하거나 해제해야 하는 상황을 자주 마주하게 되는데요. tar나 gzip 외에도 윈도우즈와 가장 호환성이 좋은 포맷이 바로 zip입니다. 서버 관리나 개발 작업 중 터미널에서 간편하게 파일을 묶고 풀 수 있는 핵심 유틸리티인 zip과 unzip의 기본 구조를 살펴보겠습니다.

리눅스 명령어 zip unzip

리눅스 환경에서 터미널을 통해 zip과 unzip 명령어를 활용하는 모습

기본적인 명령어 구문은 아래와 같습니다. 대상 파일이나 디렉토리를 지정하여 곧바로 실행할 수 있어서 참 직관적이더라고요.

# 파일 압축하기
zip [옵션] [압축파일이름.zip] [대상파일]

# 파일 압축 해제하기
unzip [옵션] [압축파일이름.zip]
💡 방문 꿀팁: 만약 시스템에 zip이나 unzip 명령어가 설치되어 있지 않다면, 데비안/우분투 계열에서는 sudo apt install zip unzip 명령어로, 레드햇/CentOS 계열에서는 sudo yum install zip unzip 명령어로 손쉽게 설치할 수 있습니다.

2) 주요 옵션 리스트

상황에 맞게 옵션을 조합해 사용하면 훨씬 효율적인 작업이 가능합니다. 자주 쓰이는 필수 옵션들을 정리해 두었으니 필요할 때 참고해 보세요.

  • -r (recursive): 디렉토리 내부의 하위 파일과 폴더까지 모두 포함해서 재귀적으로 압축할 때 사용합니다.
  • -v (verbose): 압축이나 해제 과정을 상세한 로그 메시지로 출력하여 진행 상황을 눈으로 확인할 수 있게 합니다.
  • -e (encrypt): 압축 파일에 비밀번호(패스워드)를 설정하여 보안을 강화합니다.
  • -d (directory): unzip 명령어와 함께 쓰이며, 압축을 해제할 특정 디렉토리 경로를 지정할 때 사용합니다.
  • -l (list): 압축 파일을 실제로 풀지 않고 내부 파일 목록만 조회합니다.

3) 명령어 실습 예시

실제 터미널 환경에서 명령어를 입력했을 때 어떤 식으로 동작하는지 표준 출력(stdout) 결과를 바탕으로 확인해 보겠습니다.

$ zip -r archive.zip my_folder/
  adding: my_folder/ (stored 0%)
  adding: my_folder/test.txt (deflated 15%)
  adding: my_folder/image.png (stored 0%)

$ unzip archive.zip -d /var/www/html/
Archive:  archive.zip
  inflating: /var/www/html/my_folder/
  inflating: /var/www/html/my_folder/test.txt
  inflating: /var/www/html/my_folder/image.png

위와 같이 -r 옵션을 통해 디렉토리 전체가 깔끔하게 archive.zip으로 압축되고, -d 옵션을 통해 원하는 경로에 정확히 해제되는 것을 볼 수 있어서 실패 없는 조합이라 자신 있게 권해드립니다.

⚠️ 방문 전 체크: 한글 파일명이 포함된 압축 파일을 윈도우즈와 리눅스 간에 이동할 때 인코딩 문제로 인해 파일명이 깨지는 현상이 발생할 수 있습니다. 이럴 때는 unzip -O CP949 filename.zip 형태로 인코딩 옵션을 지정해주어야 깨짐 없이 정상적으로 해제됩니다.

4) 응용/추가 기능 활용법

기본적인 압축 외에도 실무에서 유용하게 쓰이는 응용 팁들이 몇 가지 있습니다. 비밀번호가 걸린 압축 파일을 만들거나, 특정 파일만 골라서 해제하고 싶을 때 유용합니다.

# 비밀번호를 포함한 암호화 압축 생성
$ zip -e secure.zip sensitive_data.txt

# 압축 파일 전체를 풀지 않고 내부 목록만 확인
$ unzip -l archive.zip

이 기능들을 적절히 활용하면 서버 관리 시 보안성을 높이고 필요한 파일만 빠르게 추출할 수 있어서 작업 속도가 눈에 띄게 빨라지더라고요.

❓ 자주 묻는 질문 (FAQ)

Q. 디렉토리를 압축할 때 꼭 -r 옵션을 붙여야 하나요?

네, 디렉토리 내부에 있는 파일과 하위 폴더까지 재귀적으로 탐색하여 압축하려면 반드시 -r 옵션을 포함해야 정상적으로 아카이빙이 진행됩니다.

Q. 이미 존재하는 파일 위에 덮어쓰기 하려면 어떻게 해야 하나요?

unzip 명령어 실행 시 -o 옵션을 사용하면 사용자 확인 없이 기존 파일을 강제로 덮어씌울 수 있습니다.

✉️ 1:1 문의하기