zstd man page

zstd, unzstd, zstdcat — Compress or decompress .zst files


zstd [Options] [-|INPUT-FILE] [-o <OUTPUT-FILE>]

unzstd is equivalent to zstd -d
zstdcat is equivalent to zstd -dc


zstd is a fast lossless compression algorithm. It is based on the LZ77 family, with further FSE & huff0 entropy stages. zstd offers configurable compression speed, with fast modes at > 200 MB/s per core. It also features a very fast decoder, with speed > 500 MB/s per core.

zstd command line is generally similar to gzip, but features the following differences :
- Source files are preserved by default
It's possible to remove them automatically by using --rm command
- By default, when compressing a single file, zstd displays progress notifications and result summary.
Use -q to turn them off


# compression level [1-22] (default:3)
-d, --decompress
-D file
use `file` as Dictionary to compress or decompress FILE(s)
-o file
save result into `file` (only possible with a single INPUT-FILE)
-f, --force
overwrite output without prompting
-c, --stdout
force write to standard output, even if it is the console
remove source file(s) after successful compression or decompression
-k, --keep
keep source file(s) after successful compression or decompression.
This is the default behavior.
operate recursively on directories
-h/-H, --help
display help/long help and exit
-V, --version
display Version number and exit
-v, --verbose
verbose mode
-q, --quiet
suppress warnings, interactivity and notifications.
specify twice to suppress errors too.
-C, --check
add integrity check computed from uncompressed data
-t, --test
Test the integrity of compressed files. This option is equivalent to --decompress --stdout > /dev/null.
No files are created or removed.
All arguments after -- are treated as files

Parallel Zstd OPTIONS

Additional options for the pzstd utility

-p, --processes
number of threads to use for (de)compression (default:4)


zstd offers dictionary compression, useful for very small files and messages. It's possible to train zstd with some samples, the result of which is saved into a file called `dictionary`. Then during compression and decompression, make reference to the same dictionary. It will improve compression ratio of small files. Typical gains range from ~10% (at 64KB) to x5 better (at <1KB).

--train FILEs
use FILEs as training set to create a dictionary.
The training set should contain a lot of small files (> 100).
and weight typically 100x the target dictionary size
(for example, 10 MB for a 100 KB dictionary)
-o file
dictionary saved into `file` (default: dictionary)
--maxdict #
limit dictionary to specified size (default : 112640)
--dictID #
A dictionary ID is a locally unique ID that a decoder can use to verify it is using the right dictionary.
By default, zstd will create a 4-bytes random number ID.
It's possible to give a precise number instead.
Short numbers have an advantage : an ID < 256 will only need 1 byte in the compressed frame header,
and an ID < 65536 will only need 2 bytes. This compares favorably to 4 bytes default.
However, it's up to the dictionary manager to not assign twice the same ID to 2 different dictionaries.
dictionary selectivity level (default: 9)
the smaller the value, the denser the dictionary, improving its efficiency but reducing its possible maximum size.


benchmark file(s) using compression level #
minimum evaluation time, in seconds (default : 3s), benchmark mode only
cut file into independent blocks of size # (default: no block)


Report bugs at:- https://github.com/facebook/zstd/issues


Yann Collet


zstd 2015-08-22