Hash :
3396c67f
Author :
Date :
2024-01-15T12:49:21
add brcat alias + flag to decompress concatenated streams PiperOrigin-RevId: 598652401
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
.\" Automatically generated by Pandoc 2.7.3
.\"
.TH "brotli" "1" "August 14 2021" "brotli 1.0.9" "User Manual"
.hy
.SH NAME
.PP
brotli(1) -- brotli, brcat, unbrotli - compress or decompress files
.SH SYNOPSIS
.PP
\f[B]brotli\f[R] [\f[I]OPTION|FILE\f[R]]\&...
.PP
\f[B]brcat\f[R] is equivalent to \f[B]brotli --decompress --concatenated
--stdout\f[R]
.PP
\f[B]unbrotli\f[R] is equivalent to \f[B]brotli --decompress\f[R]
.SH DESCRIPTION
.PP
\f[B]brotli\f[R] is a generic-purpose lossless compression algorithm
that compresses data using a combination of a modern variant of the
\f[B]LZ77\f[R] algorithm, Huffman coding and 2-nd order context
modeling, with a compression ratio comparable to the best currently
available general-purpose compression methods.
It is similar in speed with deflate but offers more dense compression.
.PP
\f[B]brotli\f[R] command line syntax similar to \f[B]gzip (1)\f[R] and
\f[B]zstd (1)\f[R].
Unlike \f[B]gzip (1)\f[R], source files are preserved by default.
It is possible to remove them after processing by using the
\f[B]--rm\f[R] \f[I]option\f[R].
.PP
Arguments that look like \[lq]\f[B]--name\f[R]\[rq] or
\[lq]\f[B]--name=value\f[R]\[rq] are \f[I]options\f[R].
Every \f[I]option\f[R] has a short form \[lq]\f[B]-x\f[R]\[rq] or
\[lq]\f[B]-x value\f[R]\[rq].
Multiple short form \f[I]options\f[R] could be coalesced:
.IP \[bu] 2
\[lq]\f[B]--decompress --stdout --suffix=.b\f[R]\[rq] works the same as
.IP \[bu] 2
\[lq]\f[B]-d -s -S .b\f[R]\[rq] and
.IP \[bu] 2
\[lq]\f[B]-dsS .b\f[R]\[rq]
.PP
\f[B]brotli\f[R] has 3 operation modes:
.IP \[bu] 2
default mode is compression;
.IP \[bu] 2
\f[B]--decompress\f[R] option activates decompression mode;
.IP \[bu] 2
\f[B]--test\f[R] option switches to integrity test mode; this option is
equivalent to \[lq]\f[B]--decompress --stdout\f[R]\[rq] except that the
decompressed data is discarded instead of being written to standard
output.
.PP
Every non-option argument is a \f[I]file\f[R] entry.
If no \f[I]files\f[R] are given or \f[I]file\f[R] is
\[lq]\f[B]-\f[R]\[rq], \f[B]brotli\f[R] reads from standard input.
All arguments after \[lq]\f[B]--\f[R]\[rq] are \f[I]file\f[R] entries.
.PP
Unless \f[B]--stdout\f[R] or \f[B]--output\f[R] is specified,
\f[I]files\f[R] are written to a new file whose name is derived from the
source \f[I]file\f[R] name:
.IP \[bu] 2
when compressing, a suffix is appended to the source filename to get the
target filename
.IP \[bu] 2
when decompressing, a suffix is removed from the source filename to get
the target filename
.PP
Default suffix is \f[B].br\f[R], but it could be specified with
\f[B]--suffix\f[R] option.
.PP
Conflicting or duplicate \f[I]options\f[R] are not allowed.
.SH OPTIONS
.IP \[bu] 2
\f[B]-#\f[R]: compression level (0-9); bigger values cause denser, but
slower compression
.IP \[bu] 2
\f[B]-c\f[R], \f[B]--stdout\f[R]: write on standard output
.IP \[bu] 2
\f[B]-d\f[R], \f[B]--decompress\f[R]: decompress mode
.IP \[bu] 2
\f[B]-f\f[R], \f[B]--force\f[R]: force output file overwrite
.IP \[bu] 2
\f[B]-h\f[R], \f[B]--help\f[R]: display this help and exit
.IP \[bu] 2
\f[B]-j\f[R], \f[B]--rm\f[R]: remove source file(s); \f[B]gzip
(1)\f[R]-like behaviour
.IP \[bu] 2
\f[B]-k\f[R], \f[B]--keep\f[R]: keep source file(s); \f[B]zstd
(1)\f[R]-like behaviour
.IP \[bu] 2
\f[B]-n\f[R], \f[B]--no-copy-stat\f[R]: do not copy source file(s)
attributes
.IP \[bu] 2
\f[B]-o FILE\f[R], \f[B]--output=FILE\f[R] output file; valid only if
there is a single input entry
.IP \[bu] 2
\f[B]-q NUM\f[R], \f[B]--quality=NUM\f[R]: compression level (0-11);
bigger values cause denser, but slower compression
.IP \[bu] 2
\f[B]-t\f[R], \f[B]--test\f[R]: test file integrity mode
.IP \[bu] 2
\f[B]-v\f[R], \f[B]--verbose\f[R]: increase output verbosity
.IP \[bu] 2
\f[B]-w NUM\f[R], \f[B]--lgwin=NUM\f[R]: set LZ77 window size (0, 10-24)
(default: 24); window size is \f[B](pow(2, NUM) - 16)\f[R]; 0 lets
compressor decide over the optimal value; bigger windows size improve
density; decoder might require up to window size memory to operate
.IP \[bu] 2
\f[B]-C B64\f[R], \f[B]--comment=B64\f[R]: set comment; argument is
base64-decoded first; when decoding: check stream comment; when
encoding: embed comment (fingerprint)
.IP \[bu] 2
\f[B]-D FILE\f[R], \f[B]--dictionary=FILE\f[R]: use FILE as raw (LZ77)
dictionary; same dictionary MUST be used both for compression and
decompression
.IP \[bu] 2
\f[B]-K\f[R], \f[B]--concatenated\f[R]: when decoding, allow
concatenated brotli streams as input
.IP \[bu] 2
\f[B]-S SUF\f[R], \f[B]--suffix=SUF\f[R]: output file suffix (default:
\f[B].br\f[R])
.IP \[bu] 2
\f[B]-V\f[R], \f[B]--version\f[R]: display version and exit
.IP \[bu] 2
\f[B]-Z\f[R], \f[B]--best\f[R]: use best compression level (default);
same as \[lq]\f[B]-q 11\f[R]\[rq]
.SH SEE ALSO
.PP
\f[B]brotli\f[R] file format is defined in RFC
7932 (https://www.ietf.org/rfc/rfc7932.txt).
.PP
\f[B]brotli\f[R] is open-sourced under the MIT
License (https://opensource.org/licenses/MIT).
.PP
Mailing list: https://groups.google.com/forum/#!forum/brotli
.SH BUGS
.PP
Report bugs at: https://github.com/google/brotli/issues