zpaq
Compress and archive files
TLDR
Add a file or directory to a new or existing archive
Create or add to an encrypted archive
Extract the most recent versions of files
List the archive contents
Set the level of compression (higher means more compression but slower)
Extract the specified files from the archive that are not newer than the specified date
SYNOPSIS
zpaq command [options] archive_name [files...]
PARAMETERS
a
Add files to the archive.
x
Extract files from the archive.
l
List files in the archive.
d
Delete files from the archive.
t
Test integrity of the archive.
c
Set compression level (0-9, default 5). Higher levels use more memory and time, but compress better.
m
Select a compression method to override the default. The methods are described in the ZPAQ documentation.
-method
Another way to select the compression method. Same functionality as "m
-until
Extract or list only versions up to
-from
Extract or list only from
--md5
Calculate and verify MD5 checksums.
DESCRIPTION
ZPAQ is a command-line archiving tool that uses a sophisticated compression algorithm designed for long-term archival storage.
It aims for high compression ratios, data integrity, and versioning. Unlike more common archiving tools like gzip or zip, ZPAQ employs a context mixing algorithm, allowing it to achieve superior compression, especially on redundant or structured data.
ZPAQ archives are designed to be self-extracting (extracting only needed files), versioned, and relatively resilient to data corruption. The primary use case is for backups where data loss is unacceptable and long-term preservation is critical.
It is not optimized for speed, favoring compression ratio over processing time. ZPAQ requires a significant amount of RAM during operation, especially when compressing large files with high compression levels. The compression level can be adjusted to trade-off between speed and compression ratio.
CAVEATS
ZPAQ is not widely supported and is generally slower than other archiving tools like gzip, bzip2, or xz. It is more resource-intensive and may require a significant amount of RAM, especially for high compression levels.
COMPRESSION METHODS
The -method parameter allows specifying the method for compression. Commonly used methods are detailed in the ZPAQ documentation and include options to tradeoff speed and compression ratios.
VERSIONING
ZPAQ supports versioning, allowing you to add new files or update existing ones in an archive without completely rewriting it. The -until and -from parameters facilitate managing these versions.
HISTORY
ZPAQ was developed by Matt Mahoney, aiming for high compression ratios and long-term archival capabilities. It has been continuously improved over time, with updates focusing on improving compression algorithms, adding features, and addressing reported issues. The main goal of ZPAQ is to achieve high compression, while also ensuring data integrity and enabling features such as versioning and efficient extraction of individual files from the archive.