나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-02-28 20:40:00

ZPAQ



1. 개요2. 상세3. 사용법
3.1. 아카이브 압축(add)3.2. 아카이브 추출(extract)3.3. 아카이브 목록 나열(list)3.4. 옵션
4. 활용5. 기타

1. 개요

홈페이지: https://mattmahoney.net/dc/zpaq.html

ZPAQ은 Matt Mahoney가 개발한 압축 프로그램이다. 동시에 이 압축 프로그램으로 생성된 무손실 압축 파일 형식이기도 하다. 전용 확장자는 *.zpaq이다.

2. 상세

ZIP, 7-Zip, RAR과 같은 일반적인 압축 파일 형식과는 달리 압축 파일에 변경 사항이 발생할 경우 저널링(버전 관리)이 지원된다는 점이 가장 큰 특징이다. ZPAQ 포맷 소개(반디집)

Windows 기준 최신 버전은 2016년 8월 17일에 출시된 v7.15 버전이다.

3. 사용법

GUI를 지원하지 않아, 7z.exe, FFmpeg 등의 프로그램처럼 명령줄(CLI)로 사용할 수 있다.
ZPAQ의 압축 작업은 크게 add, extract, list 중 하나로 수행된다.

3.1. 아카이브 압축(add)

#!syntax powershell zpaq add archive.zpaq .\*
참고로 약어를 이용해서 위와 같은 경우 짧게 zpaq a archive .\* 라고 입력해도 똑같이 실행된다.

.zpaq 아카이브 파일이 대상 폴더에 없는 상태에서 위의 add 명령어를 쓰면 아카이브 파일을 새로 만든다. 만약 위의 상황에서 archive.zpaq 파일이 이미 있다면 기존 추가 대상 파일들 중에서 '변경, 추가, 삭제'된 파일들의 정보만 해당 아카이브에 버전으로 기록한다. 추가 대상 파일의 '경로, 크기, 마지막 수정 날짜, 속성(Windows), 권한(Unix/Linux)' 정보가 바뀌었으면 파일이 변경된 것으로 간주한다. 그런 후 변경 사항을 CLI에 알려준다.[1]

버전 기록 시 추가 대상 파일이 새로 생겼다면 +로, 삭제되었다면 -[2], 변경되었다면 #로 표시된다.

백업 대상 파일의 경로는 자유롭게 지정할 수 있다.
권한 거부 등의 이유로 추가 대상 파일을 읽을 수 없는 경우 해당 파일은 건너뛰고 경고가 표시된다. 다른 파일들은 여전히 백업에 추가된다.

3.2. 아카이브 추출(extract)

#!syntax powershell zpaq extract archive.zpaq .\

3.3. 아카이브 목록 나열(list)

#!syntax powershell zpaq list archive.zpaq

3.4. 옵션

옵션 지정의 경우 아래와 같이 명령어 뒤에 붙여서 이용할 수 있다.
#!syntax powershell zpaq add jpg_only_archive.zpaq .\* -only *.jpg

4. 활용

CLI를 사용해보지 않았다면 진입 장벽도 있는 편이고 국내에서는 잘 알려지지 않은 프로그램이다 보니 많이 사용되지는 않는 모양이다. 당장 네이버에 검색해 봐도 한국어로는 관련 정보가 전무한 편.

하지만 제대로 활용한다면, 예를 들어 외장 HDD를 연결해서 본인 컴퓨터의 D 드라이브에 있는 모든 파일들 혹은 특정 폴더의 특정 확장자를 가진 파일들만 백업시키는 식으로 사용할 수 있다.

5. 기타

대한민국에서 널리 사용되고 있는 국산 압축 프로그램 중 하나인 반디집에서 ZPAQ 형식의 압축과 압축 해제를 지원한다. 단, 반디집에서는 ZPAQ 형식의 저널링, 파일 편집, 암호 설정 등의 기능을 지원하지 않는다는 제한 사항이 있지만, 압축 파일을 열어서 안에 파일들이 어떤 구조로 저널링 기록이 이루어지는지는 볼 수 있다. 단, 2023년 11월 기준 7-Zip 파일 탐색기는 ZPAQ 형식을 지원하지 않는다.
[1] 예를 들어 마지막에 3 +added, 1 -removed.라고 표시된다면 3개의 파일들이 추가 혹은 변경으로 저장되었고 1개의 파일이 삭제로 마킹되었다는 의미이다.[2] .zpaq 아카이브 안에 저장되어 있는 파일이 아카이브 밖에서는 사용자가 파일을 삭제하는 등의 작업을 통해 없어졌다고 판단하면 아카이브 안에서 해당 파일이 '삭제'되었다고, 즉 [-]로만 표시되는 식. 따라서 파일이 삭제되었다는 정보를 아카이브에 반영하더라도 아카이브 파일의 크기는 줄어들지 않는다. 아카이브에서도 삭제해 버린다면 저널링의 목적 중 하나인 롤백의 의미가 없어지니.[3] 단, .cmd 파일을 다시 실행해서 저널링 작업을 수행할 경우 그 .cmd 파일과 .zpaq 아카이브 파일 본인까지 모두 쓸데없이 다시 아카이브에 추가하게 되므로 zpaq add archive.zpaq .\* -not *.cmd *.zpaq와 같이 제외 처리가 필요하다. 옵션 문단 참고.[4] 바로 위의 코드 스니펫 예시에서는 JPG 확장자를 가진 파일들만[5] 예를 들어 -all 2로 지정할 경우 01\, 02\ 등으로 표시하는 식.