TARLZ(1)

okay bestie, sit down, hydrate, we're learning a manpage 🫢 this one is tarlz, straight outta section 1 of User Commands, and she is that girl πŸ’…

🌸 NAME 🌸

tarlz β€” she creates tar archives with multimember lzip compression. that's it. that's the whole job. icon behavior πŸŽ€


✨ SYNOPSIS ✨

tarlz operation [options] [files]

like, pick your operation, sprinkle your options, point her at your files, done πŸ¦‹


πŸ’– DESCRIPTION πŸ’–

okay so tarlz is a massively parallel (multithreaded) combined implementation of the tar archiver AND the lzip compressor β€” she's got two jobs and she's serving both 😭πŸ”₯ She uses the compression library lzlib. And she can create tar.lz archives containing a recovery record by automatically calling lziprecover. team effort, no cap.

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. And she can append files to the end of such compressed archives. slay, honestly.

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. two wins and zero losses, main character energy fr fr πŸ‘‘

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. she's literally built different πŸ’ͺ

πŸ’… Operations πŸ’…

  • -?, --help β€” display this help and exit (your lil emergency 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 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. 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). ok so the number lore is lowkey deep but we love a flexible argument πŸ’…βœ¨

heads up bestie, those --fec= args are three formats in a trenchcoat: blocks, percent, or bytes. and then TWO optional extras after commas. read it twice, i did 🫠

🫢 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 πŸ™ˆ

found a bug? tell the devs, don't just vague-post about it:


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.

fr fr, free as in freedom but no warranty bestie, she said what she said 🫑

🌈 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. go read it, it's giving ✨literature✨ πŸ“š


and that's the whole page, bestie. this one's from tarlz 0.30, dated July 2026 β€” shoutout to that version and that date, they ate and left no crumbs πŸŒΈπŸ’œπŸŽ€

πŸ“¦ where this page comes from