TARLZ(1)

NAME
tarlz - creates tar archives with multimember lzip compression

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 tar archives using a simplified and safer variant of the POSIX pax format compressed in lzip format, keeping the alignment between tar members and lzip members. 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.

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>

-h, --dereference
    follow symlinks; archive the files they point to

-n, --threads=<n>
    set number of (de)compression threads [2]

-o, --output=<file>
    compress to <file> ('-' for stdout)

-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

--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

--missing-crc
    exit with error status if missing extended CRC

--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

--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.

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.15 Using LZ_API_VERSION = 1015

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.