Linux Unzip 압축 해제

LinuxBeginner
지금 연습하기

소개

Linux 에서 파일은 저장 공간을 절약하고 네트워크를 통해 공유할 때 전송 시간을 줄이기 위해 종종 압축됩니다. ZIP 형식은 다양한 운영 체제에서 사용되는 가장 일반적인 압축 형식 중 하나입니다. 이 랩에서는 Linux 에서 unzip 유틸리티를 사용하여 ZIP 파일을 압축 해제하는 방법을 안내합니다. 도구가 설치되었는지 확인하는 방법, 단일 파일을 추출하는 방법, 여러 ZIP 파일을 효율적으로 처리하는 방법을 배우게 됩니다. 이러한 기술은 다운로드한 파일, 소프트웨어 설치 또는 데이터 백업 작업을 하는 모든 Linux 사용자에게 필수적입니다.

Unzip 유틸리티 설치 및 확인

ZIP 파일을 압축 해제하기 전에, 시스템에 unzip 유틸리티가 설치되어 있는지 확인해야 합니다. 많은 Linux 배포판에는 unzip이 미리 설치되어 있지만, 먼저 확인하고 필요한 경우 설치하는 것이 좋습니다.

Unzip 설치 여부 확인

먼저 unzip 유틸리티가 이미 시스템에 설치되어 있는지 확인해 보겠습니다. 터미널을 열고 다음 명령을 실행합니다.

which unzip

이 명령은 시스템의 PATH 에 나열된 디렉토리에서 unzip 실행 파일을 검색합니다. unzip이 설치되어 있으면 명령은 실행 파일의 경로를 출력합니다 (예: /usr/bin/unzip). 아무것도 표시되지 않으면 unzip이 설치되지 않은 것입니다.

Unzip 설치

unzip 유틸리티가 설치되어 있지 않은 경우, 패키지 관리자를 사용하여 설치할 수 있습니다. Ubuntu 를 사용하고 있으므로 apt 패키지 관리자를 사용합니다. 다음 명령을 실행하여 unzip을 설치합니다.

sudo apt-get update
sudo apt-get install -y unzip

-y 플래그는 모든 프롬프트에 자동으로 "yes"로 응답하여 설치를 비대화식으로 만듭니다.

설치 확인

설치 후, 다음을 실행하여 unzip이 이제 사용 가능한지 확인합니다.

unzip --version

이 명령은 시스템에 설치된 unzip의 버전을 표시합니다. 출력은 다음과 유사합니다.

UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.

이는 unzip이 설치되어 사용 준비가 되었음을 확인합니다.

단일 ZIP 파일 압축 해제

ZIP 파일 (ZIP 아카이브라고도 함) 은 하나 이상의 파일을 단일 파일로 압축하여 저장 및 전송을 용이하게 하는 데 널리 사용되는 형식입니다. 이제 unzip을 설치했으므로 ZIP 파일의 내용을 추출하는 방법을 배우겠습니다.

샘플 ZIP 파일 생성

먼저, 연습을 위해 샘플 텍스트 파일을 만들고 ZIP 파일로 압축해 보겠습니다. 터미널에서 다음 명령을 입력합니다.

## Create a sample text file
echo "Hello, this is a sample text file for our unzip demonstration." > sample.txt

## Check the content of the file
cat sample.txt

## Compress the file into a ZIP archive
zip message.zip sample.txt

## Remove the original text file to simulate receiving only the ZIP file
rm sample.txt

이 명령을 실행하면 현재 디렉토리에 message.zip이라는 파일이 생성되고, 원래 sample.txt 파일은 삭제됩니다.

ZIP 파일 내용 확인

ZIP 파일의 내용을 추출하기 전에, 종종 그 내용을 확인하는 것이 유용합니다. -l 옵션을 사용하여 ZIP 파일의 내용을 나열할 수 있습니다.

unzip -l message.zip

출력은 다음과 유사합니다.

Archive:  message.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       58  2023-11-09 12:34   sample.txt
---------                     -------
       58                     1 file

이는 message.zip에 크기가 58 바이트인 sample.txt라는 파일 하나가 포함되어 있음을 알려줍니다.

ZIP 파일 추출

이제 unzip 명령을 사용하여 ZIP 파일의 내용을 추출해 보겠습니다.

unzip message.zip

다음과 유사한 출력을 볼 수 있습니다.

Archive:  message.zip
  inflating: sample.txt

이는 sample.txt가 ZIP 아카이브에서 성공적으로 추출되었음을 나타냅니다.

추출 확인

파일이 올바르게 추출되었는지 확인하려면 내용을 확인하면 됩니다.

cat sample.txt

그러면 원래 텍스트인 "Hello, this is a sample text file for our unzip demonstration."이 표시됩니다.

이제 unzip 명령을 사용하여 ZIP 아카이브에서 단일 파일을 추출하는 방법을 알게 되었습니다.

여러 ZIP 파일 작업

종종 여러 ZIP 파일을 압축 해제해야 합니다. 이 단계에서는 여러 ZIP 파일을 만들고 효율적으로 추출하는 방법을 배우겠습니다.

여러 샘플 ZIP 파일 생성

세 개의 서로 다른 텍스트 파일을 만들고 각 파일을 자체 ZIP 파일로 압축해 보겠습니다.

## Create three separate text files
echo "This is the content of file 1." > file1.txt
echo "This is the content of file 2." > file2.txt
echo "This is the content of file 3." > file3.txt

## Compress each file into its own ZIP archive
zip file1.zip file1.txt
zip file2.zip file2.txt
zip file3.zip file3.txt

## Remove the original text files
rm file1.txt file2.txt file3.txt

이제 디렉토리에 file1.zip, file2.zip, file3.zip의 세 개의 ZIP 파일이 있어야 하지만, 원래 텍스트 파일은 제거되었습니다.

특정 ZIP 파일 추출

이러한 ZIP 파일 중 하나만 추출하려면 이전 단계에서 배운 동일한 명령을 사용할 수 있습니다.

unzip file1.zip

이렇게 하면 file1.zip에서 file1.txt만 추출됩니다.

여러 ZIP 파일을 하나씩 추출

개별 명령으로 각 ZIP 파일을 개별적으로 추출할 수 있습니다.

unzip file1.zip
unzip file2.zip
unzip file3.zip

그러나 ZIP 파일이 많은 경우 이 방법은 지루해집니다.

와일드카드 (Wildcard) 를 사용하여 여러 ZIP 파일을 한 번에 추출

더 효율적인 방법은 와일드카드 패턴을 사용하여 모든 ZIP 파일과 일치시키고 단일 명령으로 추출하는 것입니다.

unzip '*.zip'

별표 (*) 는 모든 문자 시퀀스와 일치하는 와일드카드입니다. 따라서 *.zip.zip으로 끝나는 모든 파일과 일치합니다. 패턴을 작은 따옴표로 묶으면 쉘이 unzip 명령에 전달하기 전에 와일드카드를 확장하는 것을 방지합니다.

이 명령을 실행하면 unzip은 현재 디렉토리의 모든 ZIP 아카이브에서 모든 파일을 추출합니다. 다음과 유사한 출력을 볼 수 있습니다.

Archive:  file1.zip
  inflating: file1.txt
Archive:  file2.zip
  inflating: file2.txt
Archive:  file3.zip
  inflating: file3.txt

여러 파일 추출 확인

모든 파일이 올바르게 추출되었는지 확인하려면 디렉토리의 모든 텍스트 파일을 나열할 수 있습니다.

ls -la *.txt

이 명령은 file1.txt, file2.txt, file3.txt의 세 개의 텍스트 파일을 모두 표시해야 합니다.

각 파일의 내용을 확인할 수도 있습니다.

cat file1.txt
cat file2.txt
cat file3.txt

이제 unzip 명령과 함께 와일드카드를 사용하여 여러 ZIP 파일을 한 번에 효율적으로 추출하는 방법을 알게 되었습니다.

고급 압축 해제 옵션

ZIP 파일 추출의 기본 사항을 마스터했으므로, 다양한 시나리오에서 유용할 수 있는 unzip 명령의 몇 가지 고급 옵션을 살펴보겠습니다.

연습을 위한 새 ZIP 파일 생성

고급 옵션을 실험하기 위해 여러 파일이 있는 새 ZIP 파일을 만들어 보겠습니다.

## Create a new directory for our files
mkdir -p testdir/subdir

## Create some sample files in different locations
echo "This is a file in the main directory." > testdir/main.txt
echo "This is a file in the subdirectory." > testdir/subdir/sub.txt

## Compress the directory with all its contents
zip -r testarchive.zip testdir

## Remove the original directory to simulate receiving only the ZIP file
rm -rf testdir

이제 파일과 디렉토리 구조를 포함하는 testarchive.zip이라는 ZIP 파일이 있습니다.

자세한 출력으로 추출

추출 중에 더 자세한 출력을 보려면 -v (verbose, 상세) 옵션을 사용할 수 있습니다.

unzip -v testarchive.zip

이렇게 하면 압축 방법, 압축 및 압축 해제된 크기 등을 포함하여 아카이브의 각 파일에 대한 자세한 정보가 표시됩니다.

다른 디렉토리로 추출

기본적으로 unzip는 현재 디렉토리에 파일을 추출합니다. 다른 디렉토리로 추출하려면 -d 옵션 뒤에 대상 디렉토리 경로를 사용합니다.

## Create a directory to extract to
mkdir extraction_target

## Extract the ZIP file to the new directory
unzip testarchive.zip -d extraction_target

이제 testarchive.zip의 내용이 extraction_target 디렉토리로 추출됩니다.

특정 파일 추출

ZIP 아카이브에서 특정 파일만 추출하려는 경우 아카이브 이름 뒤에 파일 이름을 지정할 수 있습니다.

## First, let's list the contents to know what's available
unzip -l testarchive.zip

## Now, extract only the main.txt file
unzip testarchive.zip testdir/main.txt

기존 파일 덮어쓰기 없이 추출

추출 시 기존 파일을 덮어쓰는 것에 대해 우려하는 경우 -n (never overwrite, 덮어쓰기 안 함) 옵션을 사용할 수 있습니다.

unzip -n testarchive.zip

이 옵션을 사용하면 unzip는 동일한 이름의 기존 파일을 덮어쓰는 파일을 추출하지 않습니다.

결과 확인

추출한 내용을 확인해 보겠습니다.

## Check the extracted directory structure
ls -R testdir

## Check the extraction_target directory
ls -R extraction_target

이전에 생성한 디렉토리 구조와 파일을 볼 수 있습니다.

이러한 고급 옵션을 사용하면 ZIP 아카이브에서 파일을 추출하는 방법을 더 많이 제어할 수 있으므로 unzip 명령은 Linux 에서 압축 파일을 처리하는 데 유용한 도구가 됩니다.

요약

Linux Unzip 압축 해제 랩을 완료하신 것을 축하드립니다. 압축 파일을 다루는 모든 Linux 사용자에게 필수적인 귀중한 기술을 습득했습니다. 배운 내용을 요약하면 다음과 같습니다.

  1. Unzip 유틸리티 설치: 시스템에 unzip이 설치되어 있는지 확인하고 필요한 경우 설치하는 방법을 배웠습니다.

  2. 기본 파일 추출: unzip 명령을 사용하여 단일 ZIP 파일의 내용을 추출하는 기본 기술을 마스터했습니다.

  3. 여러 ZIP 파일 처리: 와일드카드 패턴을 사용하여 여러 ZIP 파일을 한 번에 효율적으로 추출하는 방법을 배웠습니다.

  4. 고급 Unzip 옵션: 다른 디렉토리로 추출, 특정 파일 추출, 덮어쓰기 동작 제어와 같은 unzip 명령의 고급 기능을 탐색했습니다.

이러한 기술은 다음과 같은 다양한 시나리오에서 유용할 것입니다.

  • ZIP 형식으로 제공되는 소프트웨어 설치
  • 아카이브된 데이터 파일 처리
  • 압축 파일 일괄 처리
  • 백업 및 아카이브 관리

unzip 명령에는 man unzip를 읽어볼 수 있는 더 많은 옵션이 있다는 것을 기억하십시오. 습득한 지식은 Linux 환경에서 압축 파일 작업을 위한 견고한 기반을 제공합니다.