mirror of
				https://git.tukaani.org/xz.git
				synced 2025-11-04 07:22:55 +00:00 
			
		
		
		
	xz man page updates.
- Concatenating .xz files and padding - List mode - Robot mode - A few examples (but many more are needed)
This commit is contained in:
		
							parent
							
								
									ce6dc3c0a8
								
							
						
					
					
						commit
						e243145c84
					
				
							
								
								
									
										385
									
								
								src/xz/xz.1
									
									
									
									
									
								
							
							
						
						
									
										385
									
								
								src/xz/xz.1
									
									
									
									
									
								
							@ -5,7 +5,7 @@
 | 
			
		||||
.\" This file has been put into the public domain.
 | 
			
		||||
.\" You can do whatever you want with this file.
 | 
			
		||||
.\"
 | 
			
		||||
.TH XZ 1 "2010-03-07" "Tukaani" "XZ Utils"
 | 
			
		||||
.TH XZ 1 "2010-06-01" "Tukaani" "XZ Utils"
 | 
			
		||||
.SH NAME
 | 
			
		||||
xz, unxz, xzcat, lzma, unlzma, lzcat \- Compress or decompress .xz and .lzma files
 | 
			
		||||
.SH SYNOPSIS
 | 
			
		||||
@ -232,6 +232,24 @@ or near the bottom of the output of
 | 
			
		||||
.BR \-\-long\-help .
 | 
			
		||||
The default limit can be overridden with
 | 
			
		||||
\fB\-\-memory=\fIlimit\fR.
 | 
			
		||||
.SS Concatenation and padding with .xz files
 | 
			
		||||
It is possible to concatenate
 | 
			
		||||
.B .xz
 | 
			
		||||
files as is.
 | 
			
		||||
.B xz
 | 
			
		||||
will decompress such files as if they were a single
 | 
			
		||||
.B .xz
 | 
			
		||||
file.
 | 
			
		||||
.PP
 | 
			
		||||
It is possible to insert padding between the concenated parts
 | 
			
		||||
or after the last part. The padding must be null bytes and the size
 | 
			
		||||
of the padding must be a multiple of four bytes. This can be useful
 | 
			
		||||
if the .xz file is stored on a medium that stores file sizes
 | 
			
		||||
e.g. as 512-byte blocks.
 | 
			
		||||
.PP
 | 
			
		||||
Concatenation and padding are not allowed with
 | 
			
		||||
.B .lzma
 | 
			
		||||
files or raw streams.
 | 
			
		||||
.SH OPTIONS
 | 
			
		||||
.SS "Integer suffixes and special values"
 | 
			
		||||
In most places where an integer argument is expected, an optional suffix
 | 
			
		||||
@ -295,12 +313,29 @@ except that the decompressed data is discarded instead of being
 | 
			
		||||
written to standard output.
 | 
			
		||||
.TP
 | 
			
		||||
.BR \-l ", " \-\-list
 | 
			
		||||
View information about the compressed files. No uncompressed output is
 | 
			
		||||
produced, and no files are created or removed. In list mode, the program
 | 
			
		||||
cannot read the compressed data from standard input or from other
 | 
			
		||||
unseekable sources.
 | 
			
		||||
List information about compressed
 | 
			
		||||
.IR files .
 | 
			
		||||
No uncompressed output is produced, and no files are created or removed.
 | 
			
		||||
In list mode, the program cannot read the compressed data from standard
 | 
			
		||||
input or from other unseekable sources.
 | 
			
		||||
.IP
 | 
			
		||||
.B "This feature has not been implemented yet."
 | 
			
		||||
The default listing shows basic information about
 | 
			
		||||
.IR files ,
 | 
			
		||||
one file per line. To get more detailed information, use also the
 | 
			
		||||
.B \-\-verbose
 | 
			
		||||
option. For even more information, use
 | 
			
		||||
.B \-\-verbose
 | 
			
		||||
twice, but note that it may be slow, because getting all the extra
 | 
			
		||||
information requires many seeks. The width of verbose output exceeds
 | 
			
		||||
80 characters, so piping the output to e.g.
 | 
			
		||||
.B "less\ \-S"
 | 
			
		||||
may be convenient if the terminal isn't wide enough.
 | 
			
		||||
.IP
 | 
			
		||||
The exact output may vary between
 | 
			
		||||
.B xz
 | 
			
		||||
versions and different locales. To get machine-readable output,
 | 
			
		||||
.B \-\-robot \-\-list
 | 
			
		||||
should be used.
 | 
			
		||||
.SS "Operation modifiers"
 | 
			
		||||
.TP
 | 
			
		||||
.BR \-k ", " \-\-keep
 | 
			
		||||
@ -1085,14 +1120,9 @@ writing frontends that want to use
 | 
			
		||||
instead of liblzma, which may be the case with various scripts. The output
 | 
			
		||||
with this option enabled is meant to be stable across
 | 
			
		||||
.B xz
 | 
			
		||||
releases. Currently
 | 
			
		||||
.B \-\-robot
 | 
			
		||||
is implemented only for
 | 
			
		||||
.B \-\-info\-memory
 | 
			
		||||
and
 | 
			
		||||
.BR \-\-version ,
 | 
			
		||||
but the idea is to make it usable for actual compression
 | 
			
		||||
and decompression too.
 | 
			
		||||
releases. See the section
 | 
			
		||||
.B "ROBOT MODE"
 | 
			
		||||
for details.
 | 
			
		||||
.TP
 | 
			
		||||
.BR \-\-info-memory
 | 
			
		||||
Display the current memory usage limit in human-readable format on
 | 
			
		||||
@ -1100,11 +1130,6 @@ a single line, and exit successfully. To see how much RAM
 | 
			
		||||
.B xz
 | 
			
		||||
thinks your system has, use
 | 
			
		||||
.BR "\-\-memory=100% \-\-info\-memory" .
 | 
			
		||||
To get machine-parsable output
 | 
			
		||||
(memory usage limit as bytes without thousand separators), specify
 | 
			
		||||
.B \-\-robot
 | 
			
		||||
before
 | 
			
		||||
.BR \-\-info-memory .
 | 
			
		||||
.TP
 | 
			
		||||
.BR \-h ", " \-\-help
 | 
			
		||||
Display a help message describing the most commonly used options,
 | 
			
		||||
@ -1122,6 +1147,291 @@ and liblzma in human readable format. To get machine-parsable output, specify
 | 
			
		||||
.B \-\-robot
 | 
			
		||||
before
 | 
			
		||||
.BR \-\-version .
 | 
			
		||||
.SH ROBOT MODE
 | 
			
		||||
The robot mode is activated with the
 | 
			
		||||
.B \-\-robot
 | 
			
		||||
option. It makes the output of
 | 
			
		||||
.B xz
 | 
			
		||||
easier to parse by other programs. Currently
 | 
			
		||||
.B \-\-robot
 | 
			
		||||
is supported only together with
 | 
			
		||||
.BR \-\-version ,
 | 
			
		||||
.BR \-\-info-memory ,
 | 
			
		||||
and
 | 
			
		||||
.BR \-\-list .
 | 
			
		||||
It will be supported for normal compression and decompression in the future.
 | 
			
		||||
.PP
 | 
			
		||||
.SS Version
 | 
			
		||||
.B "xz \-\-robot \-\-version"
 | 
			
		||||
will print the version number of
 | 
			
		||||
.B xz
 | 
			
		||||
and liblzma in the following format:
 | 
			
		||||
.PP
 | 
			
		||||
.BI XZ_VERSION= XYYYZZZS
 | 
			
		||||
.br
 | 
			
		||||
.BI LIBLZMA_VERSION= XYYYZZZS
 | 
			
		||||
.TP
 | 
			
		||||
.I X
 | 
			
		||||
Major version.
 | 
			
		||||
.TP
 | 
			
		||||
.I YYY
 | 
			
		||||
Minor version. Even numbers are stable.
 | 
			
		||||
Odd numbers are alpha or beta versions.
 | 
			
		||||
.TP
 | 
			
		||||
.I ZZZ
 | 
			
		||||
Patch level for stable releases or just a counter for development releases.
 | 
			
		||||
.TP
 | 
			
		||||
.I S
 | 
			
		||||
Stability.
 | 
			
		||||
.B 0
 | 
			
		||||
is alpha,
 | 
			
		||||
.B 1
 | 
			
		||||
is beta, and
 | 
			
		||||
.B 2
 | 
			
		||||
is stable.
 | 
			
		||||
.I S
 | 
			
		||||
should be always
 | 
			
		||||
.B 2
 | 
			
		||||
when
 | 
			
		||||
.I YYY
 | 
			
		||||
is even.
 | 
			
		||||
.PP
 | 
			
		||||
.I XYYYZZZS
 | 
			
		||||
are the same on both lines if
 | 
			
		||||
.B xz
 | 
			
		||||
and liblzma are from the same XZ Utils release.
 | 
			
		||||
.PP
 | 
			
		||||
Examples: 4.999.9beta is
 | 
			
		||||
.B 49990091
 | 
			
		||||
and
 | 
			
		||||
5.0.0 is
 | 
			
		||||
.BR 50000002 .
 | 
			
		||||
.SS Memory limit information
 | 
			
		||||
.B "xz \-\-robot \-\-info-memory"
 | 
			
		||||
prints the current memory usage limit as bytes on a single line.
 | 
			
		||||
To get the total amount of installed RAM, use
 | 
			
		||||
.BR "xz \-\-robot \-\-memory=100% \-\-info-memory" .
 | 
			
		||||
.SS List mode
 | 
			
		||||
.B "xz \-\-robot \-\-list"
 | 
			
		||||
uses tab-separated output. The first column of every line has a string
 | 
			
		||||
that indicates the type of the information found on that line:
 | 
			
		||||
.TP
 | 
			
		||||
.B name
 | 
			
		||||
This is always the first line when starting to list a file. The second
 | 
			
		||||
column on the line is the filename.
 | 
			
		||||
.TP
 | 
			
		||||
.B file
 | 
			
		||||
This line contains overall information about the
 | 
			
		||||
.B .xz
 | 
			
		||||
file. This line is always printed after the
 | 
			
		||||
.B name
 | 
			
		||||
line.
 | 
			
		||||
.TP
 | 
			
		||||
.B stream
 | 
			
		||||
This line type is used only when
 | 
			
		||||
.B \-\-verbose
 | 
			
		||||
was specified. There are as many
 | 
			
		||||
.B stream
 | 
			
		||||
lines as there are streams in the
 | 
			
		||||
.B .xz
 | 
			
		||||
file.
 | 
			
		||||
.TP
 | 
			
		||||
.B block
 | 
			
		||||
This line type is used only when
 | 
			
		||||
.B \-\-verbose
 | 
			
		||||
was specified. There are as many
 | 
			
		||||
.B block
 | 
			
		||||
lines as there are blocks in the
 | 
			
		||||
.B .xz
 | 
			
		||||
file. The
 | 
			
		||||
.B block
 | 
			
		||||
lines are shown after all the
 | 
			
		||||
.B stream
 | 
			
		||||
lines; different line types are not interleaved.
 | 
			
		||||
.TP
 | 
			
		||||
.B summary
 | 
			
		||||
This line type is used only when
 | 
			
		||||
.B \-\-verbose
 | 
			
		||||
was specified twice. This line is printed after all
 | 
			
		||||
.B block
 | 
			
		||||
lines. Like the
 | 
			
		||||
.B file
 | 
			
		||||
line, the
 | 
			
		||||
.B summary
 | 
			
		||||
line contains overall information about the
 | 
			
		||||
.B .xz
 | 
			
		||||
file.
 | 
			
		||||
.TP
 | 
			
		||||
.B totals
 | 
			
		||||
This line is always the very last line of the list output. It shows
 | 
			
		||||
the total counts and sizes.
 | 
			
		||||
.PP
 | 
			
		||||
The columns of the
 | 
			
		||||
.B file
 | 
			
		||||
lines:
 | 
			
		||||
.RS
 | 
			
		||||
.IP 2. 4
 | 
			
		||||
Number of streams in the file
 | 
			
		||||
.IP 3. 4
 | 
			
		||||
Total number of blocks in the stream(s)
 | 
			
		||||
.IP 4. 4
 | 
			
		||||
Compressed size of the file
 | 
			
		||||
.IP 5. 4
 | 
			
		||||
Uncompressed size of the file
 | 
			
		||||
.IP 6. 4
 | 
			
		||||
Compression ratio, for example
 | 
			
		||||
.BR 0.123.
 | 
			
		||||
If ratio is over 9.999, three dashes
 | 
			
		||||
.RB ( \-\-\- )
 | 
			
		||||
are displayed instead of the ratio.
 | 
			
		||||
.IP 7. 4
 | 
			
		||||
Comma-separated list of integrity check names. The following strings are
 | 
			
		||||
used for the known check types:
 | 
			
		||||
.BR None ,
 | 
			
		||||
.BR CRC32 ,
 | 
			
		||||
.BR CRC64 ,
 | 
			
		||||
and
 | 
			
		||||
.BR SHA\-256 .
 | 
			
		||||
For unknown check types,
 | 
			
		||||
.BI Unknown\- N
 | 
			
		||||
is used, where
 | 
			
		||||
.I N
 | 
			
		||||
is the Check ID as a decimal number (one or two digits).
 | 
			
		||||
.IP 8. 4
 | 
			
		||||
Total size of stream padding in the file
 | 
			
		||||
.RE
 | 
			
		||||
.PP
 | 
			
		||||
The columns of the
 | 
			
		||||
.B stream
 | 
			
		||||
lines:
 | 
			
		||||
.RS
 | 
			
		||||
.IP 2. 4
 | 
			
		||||
Stream number (the first stream is 1)
 | 
			
		||||
.IP 3. 4
 | 
			
		||||
Number of blocks in the stream
 | 
			
		||||
.IP 4. 4
 | 
			
		||||
Compressed start offset
 | 
			
		||||
.IP 5. 4
 | 
			
		||||
Uncompressed start offset
 | 
			
		||||
.IP 6. 4
 | 
			
		||||
Compressed size (does not include stream padding)
 | 
			
		||||
.IP 7. 4
 | 
			
		||||
Uncompressed size
 | 
			
		||||
.IP 8. 4
 | 
			
		||||
Compression ratio
 | 
			
		||||
.IP 9. 4
 | 
			
		||||
Name of the integrity check
 | 
			
		||||
.IP 10. 4
 | 
			
		||||
Size of stream padding
 | 
			
		||||
.RE
 | 
			
		||||
.PP
 | 
			
		||||
The columns of the
 | 
			
		||||
.B block
 | 
			
		||||
lines:
 | 
			
		||||
.RS
 | 
			
		||||
.IP 2. 4
 | 
			
		||||
Number of the stream containing this block
 | 
			
		||||
.IP 3. 4
 | 
			
		||||
Block number relative to the beginning of the stream (the first block is 1)
 | 
			
		||||
.IP 4. 4
 | 
			
		||||
Block number relative to the beginning of the file
 | 
			
		||||
.IP 5. 4
 | 
			
		||||
Compressed start offset relative to the beginning of the file
 | 
			
		||||
.IP 6. 4
 | 
			
		||||
Uncompressed start offset relative to the beginning of the file
 | 
			
		||||
.IP 7. 4
 | 
			
		||||
Total compressed size of the block (includes headers)
 | 
			
		||||
.IP 8. 4
 | 
			
		||||
Uncompressed size
 | 
			
		||||
.IP 9. 4
 | 
			
		||||
Compression ratio
 | 
			
		||||
.IP 10. 4
 | 
			
		||||
Name of the integrity check
 | 
			
		||||
.RE
 | 
			
		||||
.PP
 | 
			
		||||
If
 | 
			
		||||
.B \-\-verbose
 | 
			
		||||
was specified twice, additional columns are included on the
 | 
			
		||||
.B block
 | 
			
		||||
lines. These are not displayed with a single
 | 
			
		||||
.BR \-\-verbose ,
 | 
			
		||||
because getting this information requires many seeks and can thus be slow:
 | 
			
		||||
.RS
 | 
			
		||||
.IP 11. 4
 | 
			
		||||
Value of the integrity check in hexadecimal
 | 
			
		||||
.IP 12. 4
 | 
			
		||||
Block header size
 | 
			
		||||
.IP 13. 4
 | 
			
		||||
Block flags:
 | 
			
		||||
.B c
 | 
			
		||||
indicates that compressed size is present, and
 | 
			
		||||
.B u
 | 
			
		||||
indicates that uncompressed size is present.
 | 
			
		||||
If the flag is not set, a dash
 | 
			
		||||
.RB ( \- )
 | 
			
		||||
is shown instead to keep the string length fixed. New flags may be added
 | 
			
		||||
to the end of the string in the future.
 | 
			
		||||
.IP 14. 4
 | 
			
		||||
Size of the actual compressed data in the block (this excludes
 | 
			
		||||
the block header, block padding, and check fields)
 | 
			
		||||
.IP 15. 4
 | 
			
		||||
Amount of memory (as bytes) required to decompress this block with this
 | 
			
		||||
.B xz
 | 
			
		||||
version
 | 
			
		||||
.IP 16. 4
 | 
			
		||||
Filter chain. Note that most of the options used at compression time cannot
 | 
			
		||||
be known, because only the options that are needed for decompression are
 | 
			
		||||
stored in the
 | 
			
		||||
.B .xz
 | 
			
		||||
headers.
 | 
			
		||||
.RE
 | 
			
		||||
.PP
 | 
			
		||||
The columns of the
 | 
			
		||||
.B totals
 | 
			
		||||
line:
 | 
			
		||||
.RS
 | 
			
		||||
.IP 2. 4
 | 
			
		||||
Number of streams
 | 
			
		||||
.IP 3. 4
 | 
			
		||||
Number of blocks
 | 
			
		||||
.IP 4. 4
 | 
			
		||||
Compressed size
 | 
			
		||||
.IP 5. 4
 | 
			
		||||
Uncompressed size
 | 
			
		||||
.IP 6. 4
 | 
			
		||||
Average compression ratio
 | 
			
		||||
.IP 7. 4
 | 
			
		||||
Comma-separated list of integrity check names that were present in the files
 | 
			
		||||
.IP 8. 4
 | 
			
		||||
Stream padding size
 | 
			
		||||
.IP 9. 4
 | 
			
		||||
Number of files. This is here to keep the order of the earlier columns
 | 
			
		||||
the same as on
 | 
			
		||||
.B file
 | 
			
		||||
lines.
 | 
			
		||||
.RE
 | 
			
		||||
.PP
 | 
			
		||||
If
 | 
			
		||||
.B \-\-verbose
 | 
			
		||||
was specified twice, additional columns are included on the
 | 
			
		||||
.B totals
 | 
			
		||||
line:
 | 
			
		||||
.RS
 | 
			
		||||
.IP 10. 4
 | 
			
		||||
Maximum amount of memory (as bytes) required to decompress the files
 | 
			
		||||
with this
 | 
			
		||||
.B xz
 | 
			
		||||
version
 | 
			
		||||
.IP 11. 4
 | 
			
		||||
.B yes
 | 
			
		||||
or
 | 
			
		||||
.B no
 | 
			
		||||
indicating if all block headers have both compressed size and
 | 
			
		||||
uncompressed size stored in them
 | 
			
		||||
.RE
 | 
			
		||||
.PP
 | 
			
		||||
Future versions may add new line types and new columns can be added to
 | 
			
		||||
the existing line types, but the existing columns won't be changed.
 | 
			
		||||
.SH "EXIT STATUS"
 | 
			
		||||
.TP
 | 
			
		||||
.B 0
 | 
			
		||||
@ -1339,6 +1649,43 @@ integrity check if the particular
 | 
			
		||||
is not supported.
 | 
			
		||||
.PP
 | 
			
		||||
XZ Embedded supports BCJ filters, but only with the default start offset.
 | 
			
		||||
.SH EXAMPLES
 | 
			
		||||
.SS Basics
 | 
			
		||||
A mix of compressed and uncompressed files can be decompressed
 | 
			
		||||
to standard output with a single command:
 | 
			
		||||
.IP
 | 
			
		||||
.B "xz -dcf a.txt b.txt.xz c.txt d.txt.xz > abcd.txt"
 | 
			
		||||
.SS Parallel compression of many files
 | 
			
		||||
On GNU and *BSD,
 | 
			
		||||
.BR find (1)
 | 
			
		||||
and
 | 
			
		||||
.BR xargs (1)
 | 
			
		||||
can be used to parallellize compression of many files:
 | 
			
		||||
.PP
 | 
			
		||||
.IP
 | 
			
		||||
.B "find . \-type f \e! \-name '*.xz' \-print0 | xargs \-0r \-P4 \-n16 xz"
 | 
			
		||||
.PP
 | 
			
		||||
The
 | 
			
		||||
.B \-P
 | 
			
		||||
option sets the number of parallel
 | 
			
		||||
.B xz
 | 
			
		||||
processes. The best value for the
 | 
			
		||||
.B \-n
 | 
			
		||||
option depends on how many files there are to be compressed.
 | 
			
		||||
If there are only a couple of files, the value should probably be
 | 
			
		||||
.BR 1 ;
 | 
			
		||||
with tens of thousands of files,
 | 
			
		||||
.B 100
 | 
			
		||||
or even more may be appropriate to reduce the number of
 | 
			
		||||
.B xz
 | 
			
		||||
processes that
 | 
			
		||||
.BR xargs (1)
 | 
			
		||||
will eventually create.
 | 
			
		||||
.SS Robot mode examples
 | 
			
		||||
Calculating how many bytes have been saved in total after compressing
 | 
			
		||||
multiple files:
 | 
			
		||||
.IP
 | 
			
		||||
.B "xz --robot --list *.xz | awk '/^totals/{print $5\-$4}'"
 | 
			
		||||
.SH "SEE ALSO"
 | 
			
		||||
.BR xzdec (1),
 | 
			
		||||
.BR gzip (1),
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user