table of contents
| TARLZ(1) | User Commands | TARLZ(1) |
NAME¶
tarlz - creates lzip-compressed fec-protected tar archives
SYNOPSIS¶
tarlz operation [options] [files]
DESCRIPTION¶
Tarlz is a massively parallel (multithreaded) combined implementation of the tar archiver and the lzip compressor. Tarlz uses the compression library lzlib.
Tarlz creates safer tar archives by 1) using a simplified and safer variant of the POSIX pax format compressed in lzip format, 2) keeping the alignment between tar members and lzip members, and 3) optionally appending a recovery record to the archive. The resulting multimember tar.lz archive is backward compatible with standard tar tools like GNU tar, which treat it like any other tar.lz archive. Tarlz can append files to the end of such compressed archives.
Keeping the alignment between tar members and lzip members has two advantages. It adds an indexed lzip layer on top of the tar archive, making it possible to decode the archive safely in parallel. It also reduces the amount of data lost in case of corruption.
Tarlz protects the archives with Forward Error Correction by automatically calling lziprecover to create or update a recovery record or a fec file for each archive. It is recommended to create a recovery record or a fec file for each archive that needs to be stored on an unreliable medium or transmitted through an unreliable channel. In case of damage, the archive can be repaired with the command 'lziprecover --fec=repair archive.tar.lz'.
The tarlz file format is a safe POSIX-style backup format. In case of corruption, tarlz can extract all the undamaged members from the tar.lz archive, skipping over the damaged members, just like the standard (uncompressed) tar. Moreover, the option '--keep-damaged' can be used to recover as much data as possible from each damaged member, and lziprecover can be used to recover some of the damaged members.
Operations:¶
- -?, --help
- display this help and exit
- -V, --version
- output version information and exit
- -A, --concatenate
- append archives to the end of an archive
- -c, --create
- create a new archive
- -d, --diff
- find differences between archive and file system
- --delete
- delete files/directories from an archive
- -r, --append
- append files to the end of an archive
- -t, --list
- list the contents of an archive
- -x, --extract
- extract files/directories from an archive
- -z, --compress
- compress existing POSIX tar archives
- --check-lib
- check version of lzlib and exit
- --time-bits
- print the size of time_t in bits and exit
OPTIONS¶
- -B, --data-size=<bytes>
- set target size of input data blocks [2x8=16 MiB]
- -C, --directory=<dir>
- change to directory <dir>
- -f, --file=<archive>
- use archive file <archive>
- -F, --fec=a[arg]|c[arg]
- append recovery record or create fec file
- -h, --dereference
- follow symlinks; archive the files they point to
- -n, --threads=<n>
- set number of (de)compression threads [2]
- -o, --output=<file>
- compress/extract to <file> ('-' for stdout)
- -O, --to-stdout
- compress/extract to standard output
- -p, --preserve-permissions
- don't subtract the umask on extraction
- -q, --quiet
- suppress all messages
- -R, --no-recursive
- don't operate recursively on directories
- --recursive
- operate recursively on directories (default)
- -T, --files-from=<file>
- get file names from <file>
- -v, --verbose
- verbosely list files processed
- -0 .. -9
- set compression level [default 6]
- --uncompressed
- create an uncompressed archive
- --asolid
- create solidly compressed appendable archive
- --bsolid
- create per block compressed archive (default)
- --dsolid
- create per directory compressed archive
- --no-solid
- create per file compressed archive
- --solid
- create solidly compressed archive
- --anonymous
- equivalent to '--owner=root --group=root'
- --owner=<owner>
- use <owner> name/ID for files added to archive
- --group=<group>
- use <group> name/ID for files added to archive
- --numeric-owner
- don't write owner or group names to archive
- --depth
- archive entries before the directory itself
- --exclude=<pattern>
- exclude files matching a shell pattern
- --full-time
- print file times to 1-nanosecond resolution
- --ignore-ids
- ignore differences in owner and group IDs
- --ignore-metadata
- compare only file size and file content
- --ignore-overflow
- ignore mtime overflow differences on 32-bit
- --keep-damaged
- don't delete partially extracted files
- --pad-damaged
- keep, pad with zeros partially extracted files
- --missing-crc
- exit with error status if missing extended CRC
- --mode=<mode>
- set mode of files added to the archive
- --mount, --xdev
- stay in local file system when creating archive
- --mtime=<date>
- use <date> as mtime for files added to archive
- --out-slots=<n>
- number of 1 MiB output packets buffered [64]
- --parallel
- create uncompressed archive in parallel
- --utc
- print file modification times in UTC
- --warn-newer
- warn if any file is newer than the archive
If no archive is specified, tarlz tries to read it from standard input or write it to standard output. Numbers may contain underscore separators between groups of digits and may be followed by a SI or binary multiplier: 1_234_567kB, 4KiB. The argument to --fec=append and --fec=create may be a number of blocks (-Fa20), a percentage (-Fa5%), or a size in bytes (-Fa10KiB), and may be optionally followed by a comma-separated FEC fragmentation level (default 9) and a FEC unit block size in bytes (-Fa1%,0) (-Fc16,,1024)
EXIT STATUS¶
0 for a normal exit, 1 for environmental problems (file not found, files differ, invalid command-line options, I/O errors, etc), 2 to indicate a corrupt or invalid input file, 3 for an internal consistency error (e.g., bug) which caused tarlz to panic.
REPORTING BUGS¶
Report bugs to lzip-bug@nongnu.org
Tarlz home page: http://www.nongnu.org/lzip/tarlz.html
COPYRIGHT¶
Copyright © 2026 Antonio Diaz Diaz. License GPLv2+: GNU GPL
version 2 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it. There is NO
WARRANTY, to the extent permitted by law. Using lzlib 1.16 Using
LZ_API_VERSION = 1016
SEE ALSO¶
The full documentation for tarlz is maintained as a Texinfo manual. If the info and tarlz programs are properly installed at your site, the command
- info tarlz
should give you access to the complete manual.
| October 2026 | tarlz 0.31 |