Computer >> 컴퓨터 >  >> 시스템 >> Windows

Windows 11/10에서 PowerShell로 파일 압축 및 압축 해제하는 방법

ZIP 파일 형식은 여러 파일을 하나의 파일로 압축해 전체 크기를 줄여주는 형식입니다. 이 과정을 통해 디스크 공간을 절약할 수 있고, 데이터를 보호하며, 다른 사람과 파일을 손쉽게 공유할 수 있습니다. 이 글에서는 Windows 11/10에서 PowerShell 유틸리티를 사용해 파일을 압축(ZIP)하고 압축 해제하는 방법을 단계별로 살펴봅니다.

PowerShell로 파일 압축하기

파일을 ZIP 아카이브로 압축하려면 Compress-Archive cmdlet을 사용합니다. 이 cmdlet은 압축하려는 파일의 경로(파일이 여러 개인 경우 쉼표로 구분)를 입력받아 사용자가 지정한 위치에 아카이브를 생성합니다.

다음 순서대로 진행하세요:

Windows 키 + X를 눌러 파워 유저 메뉴를 연 뒤, 키보드에서 I 키를 눌러 PowerShell을 실행합니다.

그다음 아래 구문을 입력하고, <PathToFiles><PathToDestination> 자리표시자를 각각 압축할 파일의 실제 경로와 저장할 폴더 및 파일 이름으로 바꿔줍니다.

Compress-Archive -LiteralPath <PathToFiles> -DestinationPath <PathToDestination>

Windows 11/10에서 PowerShell로 파일 압축 및 압축 해제하는 방법

참고: 대상 경로를 지정할 때는 반드시 아카이브 파일 이름을 함께 작성해야 합니다. 그렇지 않으면 PowerShell이 지정한 위치에 ".zip"이라는 이름으로 저장합니다. 또한 파일 경로에 공백이 포함된 경우에만 따옴표로 묶어주면 됩니다.

반대로 폴더 전체와 그 안의 모든 하위 폴더를 한 번에 압축하고 싶다면 위와 동일한 구문을 사용하되, <PathToFiles>에는 폴더 경로를, <PathToDestination>에는 저장 위치와 이름을 넣어주면 됩니다.

실행 결과는 아래 이미지와 같습니다.

Windows 11/10에서 PowerShell로 파일 압축 및 압축 해제하는 방법

이 명령은 개별 파일을 일일이 지정하지 않고도 여러 파일과 폴더가 들어 있는 디렉터리 경로를 처리합니다. PowerShell은 루트 디렉터리 안의 모든 내용을 하위 폴더까지 통째로 압축합니다.

함께 읽기: .TAR.GZ, .TGZ 또는 .GZ 파일 여는 방법

와일드카드 문자(*) 활용하기

Compress-Archive cmdlet에서는 와일드카드 문자(*)를 사용해 기능을 더욱 확장할 수 있습니다. 와일드카드를 사용하면 루트 디렉터리를 제외하거나, 특정 폴더 안의 파일만 압축하거나, 특정 확장자를 가진 파일만 선택적으로 압축할 수 있습니다. 단, Compress-Archive에서 와일드카드를 사용하려면 -LiteralPath가 아닌 -Path 매개변수를 사용해야 합니다. -LiteralPath는 와일드카드를 지원하지 않기 때문입니다.

앞선 예제에서는 아카이브 생성 시 루트 디렉터리와 그 안의 모든 파일·하위 폴더가 포함되었습니다. 하지만 ZIP 파일에서 루트 폴더 자체를 제외하고 싶다면 와일드카드를 활용하면 됩니다. 파일 경로 끝에 별표(*)를 추가하면 PowerShell은 루트 디렉터리 안의 내용만 가져옵니다. 올바른 구문은 아래와 같습니다.

Compress-Archive -Path C:\path\to\file\* -DestinationPath C:\path\to\archive.zip

Windows 11/10에서 PowerShell로 파일 압축 및 압축 해제하는 방법

폴더 안에 다양한 형식의 파일(.docx, .txt, .jpg 등)이 섞여 있고 특정 형식의 파일만 압축하고 싶다면 아래 구문을 사용하세요. PowerShell은 지정한 형식의 파일만 아카이브하고 나머지는 건드리지 않습니다. 단, 이 방식에서는 하위 폴더와 루트 폴더의 파일들이 아카이브에 포함되지 않는다는 점에 유의하세요.

Compress-Archive -Path C:\path\to\file\*.docx -DestinationPath C:\path\to\archive.zip

Windows 11/10에서 PowerShell로 파일 압축 및 압축 해제하는 방법

마지막으로, 루트 디렉터리와 모든 하위 디렉터리에 있는 파일만 압축한 아카이브를 만들고 싶다면 별표-점-별표(*.*) 와일드카드를 사용해 아래 구문처럼 압축합니다. 이 방법 역시 하위 폴더 자체는 아카이브에 포함되지 않습니다.

Compress-Archive -Path C:\path\to\file\*.* -DestinationPath C:\path\to\archive.zip

Windows 11/10에서 PowerShell로 파일 압축 및 압축 해제하는 방법

또한 아카이브 생성이 끝난 후에도 -Update 매개변수를 사용하면 기존 ZIP 파일을 업데이트할 수 있습니다. 아래의 올바른 구문을 참고하세요. 이 옵션을 사용하면 같은 이름을 가진 최신 버전의 파일로 기존 파일을 교체하고, 루트 디렉터리에 새로 생성된 파일을 아카이브에 추가할 수 있습니다.

Compress-Archive -Path C:\path\to\files -Update -DestinationPath C:\path\to\archive.zip

Windows 11/10에서 PowerShell로 파일 압축 및 압축 해제하는 방법

지금까지 Windows 10에서 PowerShell로 파일을 압축할 수 있는 다양한 시나리오를 살펴보았습니다. 이어서 PowerShell로 파일의 압축을 해제하는 방법을 알아보겠습니다.

함께 읽기: Windows 11/10에 CURL 설치하는 방법

PowerShell로 파일 압축 해제하기

앞서 확인했듯이 PowerShell은 파일을 압축하는 데 사용할 수 있습니다. 이 유틸리티는 아카이브의 압축을 해제하는 기능도 제공합니다. 압축보다 과정이 더 간단합니다. 필요한 것은 원본 ZIP 파일과 압축을 풀 데이터의 대상 위치뿐입니다.

그럼 바로 시작해 보겠습니다.

PowerShell로 파일의 압축을 해제하려면 다음을 따르세요:

PowerShell을 엽니다.

그다음 아래 구문을 입력하고, <PathToZipFile><PathToDestination> 자리표시자를 각각 압축 해제할 ZIP 파일의 경로와 저장할 폴더 이름으로 바꿉니다.

Expand-Archive -LiteralPath <PathToZipFile> -DestinationPath <PathToDestination>

Windows 11/10에서 PowerShell로 파일 압축 및 압축 해제하는 방법

압축 해제 대상으로 지정한 폴더에 아카이브의 내용물이 채워집니다. 만약 해당 폴더가 존재하지 않으면 PowerShell이 폴더를 먼저 생성한 후 압축 해제된 내용을 그 안에 넣습니다.

기본적으로 -DestinationPath 매개변수를 생략하면 PowerShell은 현재 루트 디렉터리에 압축을 해제하며, ZIP 파일의 이름을 딴 새 폴더를 만들어 내용을 담습니다.

이 예제에서는 명령에 Docs라는 폴더가 지정되었으므로, PowerShell은 C:\Users\Chidum.Osobalu 경로에 Docs 폴더를 생성하고 아카이브의 파일들을 그 폴더에 추출합니다. 아래는 이 글 초반에 압축한 두 개의 파일이 담긴 출력 폴더입니다.

Windows 11/10에서 PowerShell로 파일 압축 및 압축 해제하는 방법

단, 대상 위치에 Docs 폴더가 이미 존재한다면 PowerShell은 압축 해제를 시도할 때 오류를 반환합니다. 이 경우 -Force 매개변수를 사용하면 기존 데이터를 강제로 덮어쓰도록 할 수 있습니다.

다만 -Force 매개변수는 기존 파일이 더 이상 필요 없는 경우에만 사용해야 합니다. 이 옵션은 컴퓨터의 파일을 되돌릴 수 없이 교체하기 때문입니다.

지금까지 Windows 11/10에서 PowerShell 유틸리티를 사용해 파일을 압축하고 압축 해제하는 방법을 알아보았습니다!

Windows 11/10에서 PowerShell로 파일 압축 및 압축 해제하는 방법